停止/启动服务 - 处理STOP_PENDING和START_PENDING

时间:2011-08-12 23:56:44

标签: windows batch-file

如何使您的停止/启动服务脚本优雅地处理陷入STOP_PENDING或START_PENDING ... ...

的服务

与SC STOP和START相关。 Stop and Start a service via batch or cmd file?

我有一个方法,但我不喜欢它。

3 个答案:

答案 0 :(得分:4)

这就是我接近停止的方式。

  • 停止:sc%host%stop%service%||回声错误! &安培;&安培;退出-1
  • 循环等待状态为STOPPED。 循环具有最大迭代次数(例如30)。测试服务是否停止(例如sc%host%query%service%| find / i“STOPPED”)。在每次迭代中等待几秒钟(例如10)。达到最大迭代次数,尝试使用taskkill终止进程(例如,使用sc queryex Alerter | find / i“PID”的输出。)

答案 1 :(得分:3)

对于我来说,当我打开services.msc窗口时,有时会挂起'Windows服务'。我无法终止此过程,也无法使用net stopsc stop

但是当我关闭services.msc窗口时,服务会立即停止。

答案 2 :(得分:1)

首先打开 service.msc ,在目标服务的属性对话框中,转到“恢复”标签 *(运行-> services.msc->右键单击< em> Target-Service -> Properties-> Recovery选项卡*)

确保将 第一\第二\后续 失败都设置为:不执行任何操作enter image description here

使用以下命令获取目标服务的PID: sc queryex ServiceName

使用 taskkill / f / pid your_PID_number

终止该过程