我知道有几个关于这个主题的类似帖子,但我想知道的是如何重新启动已经停止的服务。是否有.bat或.vbs脚本可以检查服务是否已停止,如果服务已停止并循环运行,则重新启动它?
谢谢您的帮助!
更新 7.IX.2012 @ 11.25 我知道有几篇文章详细介绍了SC
和net stop
&的用法net start
,其中大多数文章都涉及先停止服务然后重新启动它。我正在处理已经崩溃或停止的服务,我需要检查它是否停止然后重新启动它。我希望我说得更清楚。附上一个日志文件也很好。
我知道有几个关于这个主题的类似帖子,但我想知道的是如何重新启动已经停止的服务。是否有.bat或.vbs脚本可以检查服务是否已停止,如果服务已停止并循环运行,则重新启动它?
谢谢您的帮助!
更新 7.IX.2012 @ 11.25 我知道有几篇文章详细介绍了SC
和net stop
&的用法net start
,其中大多数文章都涉及先停止服务然后重新启动它。我正在处理已经崩溃或停止的服务,我需要检查它是否停止然后重新启动它。我希望我说得更清楚。附上一个日志文件也很好。
在 PowerShell 中启动服务非常简单(以后台处理程序为例):
您还可以检查服务是否正在运行,如果没有通过以下方式重新启动:
但是,我不建议无限循环脚本。一个快速而肮脏的解决方案是将此脚本设置为每隔一段时间与计划任务一起运行。
编辑:添加一行以将条目添加到日志文件。
例如,创建一个批处理文件 C:\derp.bat
批处理文件的内容可能如下所示:
net start "Service Name"
C:\derp.bat
第一行:如果服务已经在运行,那么什么也不会发生。如果它没有运行,那么它将尝试启动。
第二行:重新启动批处理文件。
如果你想让它每 60 秒尝试一次,你可以在中间抛出一个 ping 127.0.0.1 -n 60 。
从您在阅读您的评论后听起来像是在问什么,只需得到这个并完成:
http://www.netwrix.com/windows_services_monitoring_freeware.html
NetWrix Service Monitor 是一款免费工具,用于监控关键的 Windows 服务,并可选择在出现故障后重新启动它们。该工具同时监控多台服务器上的所有自动启动服务,并在一项或多项服务意外停止时发送电子邮件警报。可选的自动重启功能可确保所有受监控的服务都正常运行而不会停机。该工具轻巧且易于配置:安装、输入计算机名称并提供您的电子邮件地址。
特点和好处:
我们使用 WUG,其他人使用 NAGIOS、Zenoss 等等……但以上内容是免费的,并且针对您的问题。
sc 命令。
试试 sc/? 求助。
它可以检查服务状态。在此基础上,您可以根据需要(重新)开始。
尝试这个。如果它已经在运行,它将重新启动服务。否则,将启动它。