如果未运行,则自动重新启动 Windows 服务

zig*_*ggy 9 windows services

我有一个在 Windows 2003 服务器上运行的 Windows 服务。在您右键单击服务时的属性选项下,有一个选项可以在服务失败时重新启动该服务。可用选项适用于第一次、第二次和任何后续故障。

我尝试使用此选项在未运行时重新启动服务,但看起来它仅在服务因故障而失败时才重新启动服务。我遇到的问题是,如果出现故障,服务会选择它并“优雅地”关闭服务。这意味着它没有被重新启动。

有没有一种方法可以重新启动服务,无论它是由于故障而停止还是正常停止?

谢谢

Mul*_* IT 11

对于这样一个行为不端的服务,我会创建一个小脚本来检查它是否正在运行,如果不是,则启动它。然后我会使用计划任务每​​ 5 分钟左右运行一次脚本。

示例脚本(检查假脱机服务):

@echo off
Rem Look for the Print Spooler service in the list of started services
net start | find /i "Print Spooler"
Rem if not found, start it and a restart occurred.
if "%errorlevel%"=="1" (
   echo Service "Print Spooler" restarted at %time% on %date% by Script %0>>c:\ServiceRestart.Log
   net start "Print Spooler"
)
Run Code Online (Sandbox Code Playgroud)


小智 1

是什么服务?我曾经在使用 MS 传真服务时遇到过一个奇怪的问题。我通过检查任务管理器下的进程解决了这个问题,如果列出了该进程,则结束该进程,然后打开命令提示符并键入:

net start faxsvc.exe
Run Code Online (Sandbox Code Playgroud)

net stop faxsvc.exe也可以用来终止服务。

另一件事是检查依赖关系并重新启动那些依赖项,即传真服务所依赖的依赖项。

编辑:我想这可能有帮助,但我没有很好地阅读你的问题。我知道有一个名为 Service Hawk 的程序可用,但它需要花钱。另一个想法是匹配一个批处理文件,该文件将每隔xx秒/分钟/小时/无论服务运行和失败之间的持续时间有多长重新启动服务。