V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KINGWAY
V2EX  ›  程序员

windows11 下有哪些第三方或直接的把一个软件注册为服务?

  •  
  •   KINGWAY · 12 天前 · 2439 次点击

    装了个 hyper-v 跑了个虚拟机, 还有个 syncthing, 一直 linux 习惯了 systemd 来注册服务来实现开机自动运行软件以及自行重启停止的服务.

    这 windows 下不太熟悉, 开机自动启动简单 shell:startup 加进去快捷方式就可以, 但是如何运行过程中遇到服务意外终止自行重启服务呢?

    24 条回复    2024-04-23 15:41:55 +08:00
    TsubasaHanekaw
        1
    TsubasaHanekaw  
       12 天前
    sc create 命令
    jpyl0423
        2
    jpyl0423  
       12 天前   ❤️ 1
    nssm
    sola97
        3
    sola97  
       12 天前
    always up
    xgdgsc
        4
    xgdgsc  
       12 天前
    计划任务就行吧,syncthing 还可以用 https://github.com/Martchus/syncthingtray
    kokutou
        5
    kokutou  
       12 天前
    bouts0309
        6
    bouts0309  
       12 天前
    winsw
    ysc3839
        7
    ysc3839  
       12 天前 via Android   ❤️ 3
    @TsubasaHanekaw sc create 需要程序响应服务事件,类似 systemd 的 notify 模式,程序没有适配用不了。
    brucmao
        8
    brucmao  
       12 天前 via iPhone
    Nssm
    expy
        9
    expy  
       12 天前
    我用的这个启动代理软件。
    https://github.com/winsw/winsw
    PrinceofInj
        10
    PrinceofInj  
       12 天前
    @kokutou winsw 倒是新,但是没发现比 nssm 有任何有点,反而配置不太方便。nssm 也就是界面字体比较丑,但是非常好用。下源码,自己编译了一个字体修改版,舒服多了。
    Falcon1
        12
    Falcon1  
       12 天前
    winsw +1
    jsq2627
        13
    jsq2627  
       12 天前   ❤️ 1
    讨厌 .NET 那一坨 runtime ,我选择 shawl
    https://github.com/mtkennerly/shawl
    flynaj
        14
    flynaj  
       12 天前 via Android
    @kokutou
    nssm 功能完善,性能稳定性最好。
    winsw 依赖.net ,功能单一。你实际长时间用下来就明白了。
    ljyst
        15
    ljyst  
       12 天前
    win11 好像也可以用 brew services
    Jack927
        16
    Jack927  
       11 天前
    winsw +1
    Eiden
        17
    Eiden  
       11 天前
    instsrv 和 srvany 工具可以把任何可执行文件包装成服务
    viazure
        18
    viazure  
       11 天前
    proxytoworld
        19
    proxytoworld  
       11 天前
    自己写个简单的代码,接入通知,在代码里面手动启动对应的 exe
    lifansama
        20
    lifansama  
       11 天前
    @jsq2627 感谢,很好用~
    ilovefaust
        21
    ilovefaust  
       11 天前
    winsw +1
    e3c78a97e0f8
        22
    e3c78a97e0f8  
       11 天前
    我用 nssm
    winsw 虽然新,但是他的终止服务是直接 TerminateProcess ,而不是 SIGINT (可以自己写,但是那要 winsw 干嘛),而且也不支持 virtual service account
    ysc3839
        23
    ysc3839  
       11 天前 via Android
    @e3c78a97e0f8 Windows 没有 Unix 的信号机制,SIGINT 是通过控制台的 Ctrl+C 事件模拟的,而这个事件没法直接向某个进程发送,只能向同一控制台下的所有进程发送,父进程要和子进程在同一控制台内,可能是因为怕遇到某些问题,所以 winsw 就没这么干。除了上述方法,Win10 还可以用新出的 Pseudo Console ,但是兼容性就没那么好了。
    e3c78a97e0f8
        24
    e3c78a97e0f8  
       10 天前
    @ysc3839 这能碰到什么问题,AttachConsole 然后 GenerateConsoleCtrlEvent 就好了。懒得做而已。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   930 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:01 · PVG 03:01 · LAX 12:01 · JFK 15:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.