【问题标题】:Stop/Start Service - Handling STOP_PENDING and START_PENDING停止/启动服务 - 处理 STOP_PENDING 和 START_PENDING
【发布时间】:2011-10-26 05:27:06
【问题描述】:

如何让您的停止/启动服务脚本优雅地处理卡在 STOP_PENDING 或 START_PENDING 中的服务...

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

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

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

    首先打开service.msc,在目标服务的属性对话框中转到Recovery Tab *(run -> services.msc -> 右键单击​​Target-Service -> 属性 -> 恢复选项卡*)

    确保 First\Second\Subsequent 失败都设置为:Take No Action

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

    使用 taskkill /f /pid your_PID_number

    杀死进程

    【讨论】:

    • 迄今为止的最佳答案。无论如何,这个总是有效的。
    【解决方案2】:

    对我来说,当我打开 services.msc 窗口时,有时“Windows 服务”会挂起。我无法终止进程,既不使用net stop 也不使用sc stop

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

    【讨论】:

      【解决方案3】:

      这是我接近车站的方式。

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

      【讨论】:

        猜你喜欢
        • 2015-04-27
        • 1970-01-01
        • 1970-01-01
        • 2010-09-13
        • 2014-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-22
        • 1970-01-01
        相关资源
        最近更新 更多