Windows服务器关键服务崩溃后自动恢复的最稳方案是:在services.msc中打开服务属性→【恢复】选项卡→将“第一次/第二次/后续失败”全设为“重新启动服务”,并设“重置计数器”为1分钟,配置即时生效。

Windows服务器上某个关键服务突然停止运行,业务直接中断,没人值守时只能干等报警——这种情况必须让服务自己“活过来”。
用服务属性设置失败自动重启
这是最原生、最稳定的方式,无需脚本,不依赖外部工具,适用于所有 Windows 自带或安装为系统服务的程序(如 SQL Server、IIS、自定义 .NET 服务等)。
第一步:按 Win + R 输入 services.msc → 回车打开服务管理控制台。
第二步:在列表中找到目标服务,右键 → 选择【属性】。
第三步:切换到【恢复】选项卡 → 在“第一次失败”、“第二次失败”、“后续失败”三栏中,全部设为【重新启动服务】。
注意:如果服务启动后几秒内就崩溃,系统默认会等待 1 分钟再尝试重启;这个间隔不可调,但已足够避开瞬时抖动。若选【运行程序】,需确保路径绝对正确且程序具备提升权限能力,否则静默失败。
第四步:勾选【重新启动服务】下方的【将此服务重置为以下计数器值的时间间隔(分钟)】,建议设为 1(即每 1 分钟重置失败计数),避免连续失败后进入“不再重启”状态。
第五步:点击【应用】→【确定】。此时服务无需重启,配置立即生效。
用任务计划程序监听并触发重启
当服务未注册为 Windows 服务(比如纯命令行程序、Java jar 包直启),或你希望更精细控制检测逻辑(例如只在端口无响应时才重启),就得靠任务计划+脚本组合。
方法一:用 PowerShell 脚本检测端口并重启服务
新建一个 check-and-restart.ps1 文件,内容如下:
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
$port = 8080
$serviceName = "Tomcat8"
if (-not (Test-NetConnection -Port $port -ComputerName localhost -InformationLevel Quiet)) {
& "C:\Windows\System32\sc.exe" start $serviceName
}
方法二:用批处理检测进程是否存在
新建 restart-if-missing.bat,写入:
tasklist /fi "imagename eq java.exe" 2>nul | findstr /i "java.exe" >nul
if %errorlevel% neq 0 (
net start "Tomcat8"
)
方法三:用计划任务定期执行检测
① 以管理员身份运行任务计划程序 → 创建基本任务 → 命名(如 “Check Tomcat Alive”)→ 下一步
② 触发器设为【每天】,起始时间选凌晨 2:00,重复任务间隔选【5 分钟】,持续时间设为【无限期】→ 下一步
③ 操作选【启动程序】→ 程序或脚本填 powershell.exe,添加参数填:
-ExecutionPolicy Bypass -File "D:\scripts\check-and-restart.ps1" → 下一步 → 完成
关键点:必须勾选【使用最高权限运行】,否则 net start 或 sc.exe 会因权限不足失败。
给非服务型程序加一层“守护包装”
如果你的程序根本不是服务(比如一个 Python 脚本、Node.js 应用),又不想改代码,可以用 NSSM 工具把它“伪装”成 Windows 服务,从而直接享受【恢复】选项卡的能力。
下载 nssm.exe(官方最新版),放在 C:\nssm\nssm.exe。
以管理员身份运行 cmd,执行:
C:\nssm\nssm.exe install MyNodeApp
弹出图形界面后:
– Service Name 填 MyNodeApp
– Path 填你的 node.exe 全路径(如 C:\nodejs\node.exe)
– Startup directory 填脚本所在目录(如 D:\myapp)
– Arguments 填 app.js
– 点击【Install service】
安装完成后,在 services.msc 中就能看到 MyNodeApp,右键 → 属性 → 恢复 → 全部设为重启。从此它就和 SQL Server 一样被系统原生守护。

















