当前位置:  开发笔记 > 编程语言 > 正文

如何监控Windows服务

如何解决《如何监控Windows服务》经验,为你挑选了4个好方法。

我正在寻找一种方法来监视某些Windows服务(在Windows Server 2003上)并在必要时重新启动.这些服务位于不同的服务器上,主要包括SQL Server服务(例如SQL Server代理),还包括一些专有服务.

如果服务已停止,则发送的电子邮件警报也非常有用.



1> Tomalak..:

Windows中内置了"可能足够"的版本.查看服务属性的"恢复"选项卡,可通过services.msc.

您可以通过以下方式对服务失败:

"重启服务"

"跑一个Progam"

"重启电脑"

例如,"运行程序"可能是一个发送邮件的小脚本.

如果您想要一个带有概览仪表板的更大解决方案,那么可以使用大量的系统监控解决方案.例如,想到SolarWinds IPMonitor,或Nagios或Cacti.



2> gimel..:

如果您对某些.NET编程感兴趣,System.ServiceProcess命名空间提供了允许您实现,安装和控制Windows服务应用程序的类.

简单的例子,在C#中检查和启动服务:

var srv = new ServiceController("MyService");
Console.WriteLine("MyService Status {0}", srv.Status);
if (srv.Status != ServiceControllerStatus.Running)
    srv.Start();



3> VonC..:

它们可能是一些专用工具,但我只想指出wmic工具.

wmic /node:[hostname] service list

能够列出任何计算机的服务

WMIC SERVICE where caption='TELNET' CALL STARTSERVICE

将重新启动telnet服务.

如果您使用脚本语言(能够发送电子邮件)封装wmic,则可以使用您正在查找的监视工具.



4> RoadWarrior..:

这完全取决于您要监视的内容:

就服务控制管理器(SCM)而言,服务实际上已停止。

服务已崩溃,而SCM却不知道-这是很常见的线程。

挂起了服务,而SCM却不知道-这也是很常见的。

对于第一项,您可以将服务配置为启动一个发送电子邮件警报的脚本。请注意,如果由于服务无法控制的情况(取决于不稳定的网络连接或其他原因)而导致服务继续重启,这可能会很烦人。

对于其他两个项目,您将需要某种类型的心跳服务,可以构建或购买。小心使心跳监视器在其所监视的服务本地运行,因为正如我前一阵子所写,网络并不可靠。

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有