You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows服务被手动停止后5-10秒内自动重启?

让Windows服务在手动停止后自动重启的方案

方法一:利用Windows服务原生恢复配置

这是无需额外工具的最简方案,可实现5-10秒内重启:

  1. 打开服务控制台:按下Win + R,输入services.msc回车。
  2. 找到目标服务,右键选择「属性」。
  3. 切换到「恢复」标签页:
    • 「第一次失败」「第二次失败」「后续失败」的下拉菜单全部选「重新启动服务」。
    • 将「重新启动服务的时间」设为5-10秒(直接输入数字,单位为秒)。
    • 可选:在「重置失败计数为」中设置时长(比如1天),避免异常情况下无限循环重启。
  4. 点击「应用」「确定」保存。

关键补充:默认情况下,手动停止服务会被标记为「正常停止」,Windows不会触发恢复。要让手动停止也触发恢复,需修改注册表:

  • 按下Win + R,输入regedit打开注册表编辑器。
  • 定位到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[你的服务名称]
  • 找到FailureActions二进制值,右键选择「修改二进制数据」。
  • 将第17-20位的字节(默认00 00 00 00)改为01 00 00 00,这会让Windows把手动停止判定为失败,从而触发恢复策略。
  • 修改后重启服务,配置生效。

方法二:用任务计划程序监控服务状态

若上述注册表修改无效,或需要更灵活的控制,可使用任务计划:

  1. 打开「任务计划程序」,点击「创建任务」。
  2. 常规标签:给任务命名(如「重启XX服务」),勾选「不管用户是否登录都要运行」,并设置「使用最高权限运行」。
  3. 触发器标签:点击「新建」,选择「事件」,设置事件日志为「系统」,来源为「Service Control Manager」,事件ID为「7036」(服务停止的事件ID),并在「事件描述」中包含你的服务名称,确定。
  4. 操作标签:点击「新建」,选择「启动程序」,「程序或脚本」输入sc,「添加参数」输入start [你的服务名称]。
  5. 条件标签:取消勾选「只有在计算机使用交流电源时才启动此任务」(服务器场景适用)。
  6. 设置标签:勾选「如果任务失败,每隔X秒重试一次」,设为5-10秒,重试次数可设为无限或合适数值。
  7. 保存任务即可。

方法三:代码层面内置重启逻辑

若你有权限修改服务代码,可添加内置监控:

  • 在服务的OnStop方法中,启动一个5-10秒后触发的定时器,定时器触发时调用StartService重启自身。
  • 或创建独立的监控进程,每隔5秒检查服务状态,发现停止则启动服务。
    注意:需确保监控进程自身稳定,最好也注册为Windows服务。

内容的提问来源于stack exchange,提问作者Elanchezhiyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:42:16