【问题标题】:Could not stop in a timely manner无法及时停止
【发布时间】:2017-09-14 12:46:03
【问题描述】:

我有一个 Windows 服务,我计划使用“net stop”命令通过 Windows 批处理文件自动重启。有时服务可能会突然停止并显示消息框“无法停止 windows 服务”。

如果我使用“net stop”命令从 Windows 批处理文件停止服务,请告知我,如果命令无法停止服务,是否会显示弹出消息。请协助。

【问题讨论】:

  • net stop 是一个控制台应用程序,永远不会显示消息框。 (除非我想它会崩溃,但这不太可能。)

标签: windows batch-file


【解决方案1】:

Net Stop 是同步的,这意味着它会一直等到服务停止。

所以你打算重启服务就行了

net stop servicename && net start servicename

net stop会等到服务停止后再运行net start

另外,使用&&方法,我们回复第一个命令成功然后运行第二个,如果第一个命令失败,它不会运行第二个命令。

如果您有一个无法停止的非常顽固的服务,您可以使用tasklist 构建一个循环以检查它是否正在运行,然后如果%ERRORLEVEL% 不为0,则尝试重新启动。

您还可以在regedit中查看Service Kill的超时时间:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WaitToKi‌​llServiceTimeout

例如,我在 Windows 8 中设置为 5000 seconds

【讨论】:

  • 感谢您的建议。 net stop 将等到服务停止...这是否意味着它将继续等到服务进入停止状态或是否会等待一段时间。以下是我打算做的事情
  • 它会等待一段时间,但默认情况下,在我的 Windows 8 设备上,超时为 5000 秒。如果您的服务时间超过 83 分钟,那么您就有问题了。如果花费的时间超过 N,您还可以考虑使用 tasklist 和 taskkill。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 2019-11-03
  • 1970-01-01
相关资源
最近更新 更多