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

如何使停止/启动服务脚本正常处理停留在STOP_PENDING或START_PENDING中的服务…

与SC STOP和START有关。 通过批处理或cmd文件停止并启动服务?

我有一个问题,但我不喜欢它。

这是我接近停止的方式。

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

对于我来说,有时当我打开services.msc窗口时,“Windows服务”挂起。 我不能杀死进程,既不使用net stopsc stop

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