V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chensong004
V2EX  ›  问与答

Windows 系统下有没有类似于 systemctl 的服务管理程序

  •  
  •   chensong004 · 2022-07-28 08:48:51 +08:00 · 3405 次点击
    这是一个创建于 600 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 windows 系统内安装了一些服务,有些是控制台程序,有些是 node 程序,这些服务需要开机自启并且常驻后台。现在是在开机启动项设置了一个脚本,任务栏还堆满了一堆黑框框(终端的图标)。有没有类似于 linux 那样的服务管理程序,可以比较简单的设置服务,windows 自带的 sc 命令创建的服务好像都是在 system32 目录运行的,导致配置文件不能加载。
    21 条回复    2022-08-09 12:10:22 +08:00
    hackxing
        1
    hackxing  
       2022-07-28 08:52:02 +08:00
    Windows 的任务计划程序,可以试试
    SenLief
        3
    SenLief  
       2022-07-28 08:57:20 +08:00   ❤️ 2
    luzemin
        4
    luzemin  
       2022-07-28 08:59:41 +08:00
    windows task scheduler
    foolnius
        5
    foolnius  
       2022-07-28 09:08:33 +08:00
    Node 可以考虑用 PM2
    renmu123
        6
    renmu123  
       2022-07-28 09:10:53 +08:00 via Android
    计划任务,可以把黑框隐藏
    wowo243
        7
    wowo243  
       2022-07-28 09:15:08 +08:00
    计划任务
    Windows+R
    taskschd.msc
    Rache1
        8
    Rache1  
       2022-07-28 09:17:13 +08:00
    winsw ,可以把这些包装成 Windows 服务

    https://github.com/winsw/winsw
    bellchu
        9
    bellchu  
       2022-07-28 09:22:12 +08:00
    Microsoft.PowerShell.Management
    bearice
        10
    bearice  
       2022-07-28 09:29:15 +08:00
    zcf0508
        11
    zcf0508  
       2022-07-28 09:31:52 +08:00
    me221
        12
    me221  
       2022-07-28 10:21:56 +08:00
    @bellchu
    输入命令好像不能自动打开`用户账户控制`的页面, 而直接报错了.

    再启动一个管理员的 ps 好像也不比打开服务面板简单....
    me221
        13
    me221  
       2022-07-28 10:25:25 +08:00
    我是用 winsw 先将应用注册成服务. 然后使用 PowerToys Run 的服务 plugin 来控制服务的开启停止重启.
    itning
        14
    itning  
       2022-07-28 10:37:19 +08:00
    nssm
    Davic1
        15
    Davic1  
       2022-07-28 11:33:51 +08:00
    net start/stop xxx?
    fisherwei
        16
    fisherwei  
       2022-07-28 11:43:43 +08:00
    计划任务对应 crontab
    services.msc 才是 systemctl ,可以用 nssm 创建自己的 service
    Chancel
        17
    Chancel  
       2022-07-28 12:22:15 +08:00 via Android
    nssm
    adoal
        18
    adoal  
       2022-07-28 12:33:32 +08:00
    有没有可能 OP 不知道 Windows 的服务可以指定用什么用户来运行。以及即使在 Linux 下老运维们通常的最佳实践也不建议用交互登录的用户身份运行服务,而是用专用帐号,配置文件从绝对路径而非当前路径加载。
    root01
        19
    root01  
       2022-07-29 10:15:09 +08:00
    srvany.exe+srvanyui.exe 用这 2 个,我把 frpc 做成服务,真香。srvanyui 是 gui 界面操作简单
    bellchu
        20
    bellchu  
       2022-07-30 21:43:12 +08:00
    @me221

    你如果只是要开机启动脚本而不是任务管理,那简单的创建任务就行了。GUI 也可以创建。
    以下命令可以压缩为一条。

    $Trigger = New-ScheduledTaskTrigger -AtStartup
    $User = "Domain\User"
    $PS = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File C:\scripts.ps1"
    Register-ScheduledTask -TaskName "Startup Run 001" -Trigger $Trigger -User $User -Action $PS
    loveqianool
        21
    loveqianool  
       2022-08-09 12:10:22 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3743 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:40 · PVG 12:40 · LAX 21:40 · JFK 00:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.