我有一个如下所示的批处理脚本:
sc stop myservice
sc start myservice
它会出错,因为 sc 不会等到服务停止。如何使用脚本重新启动服务?
答案1
发帖者希望确保在尝试重新启动服务之前已停止服务。您可以在“sc query”的输出上使用循环,执行如下操作:
:stop
sc stop myservice
rem cause a ~10 second sleep before checking the service state
ping 127.0.0.1 -n 10 -w 1000 > nul
sc query myservice | find /I "STATE" | find "STOPPED"
if errorlevel 1 goto :stop
goto :start
:start
net start | find /i "My Service">nul && goto :start
sc start myservice
答案2
可能缺少了一些东西,但我一直在用这个:
网络停止“myservice”
网络启动“myservice”
或更短:
网络停止“myservice”&&网络启动“myservice”
答案3
使用 powershell 非常简单:
PS >Restart-Service MySrvcHere
更好的是,使用显示名称:
PS >Restart-Service -displayname "My Service Name Here"
Get-Help Restart-Service
更多
答案4
具有安静的重新启动某些服务,要求确认停止(例如服务器服务),您可以添加/年至停止命令结束。
net stop Server /y
net start Server
这将有助于脚本的自动执行。