检测Windows服务失败

时间:2011-03-08 15:36:28

标签: windows service detection status

一个Windows服务是否可以检测其他正在运行的Windows服务之一是否已停止?

出于某种原因,第三方服务有时会停止,我必须再次手动启动它们。我需要一项服务来自动化这个烦人的过程。

1 个答案:

答案 0 :(得分:5)

我强烈建议您针对纠正已诊断问题而不是消防症状的目标。找出为什么第三方服务正在停止/失败,并将问题扼杀在萌芽状态。

但是,如果您必须暂时实施某些内容,请查看ServiceController,并在this MSDN link找到相关信息。这将允许您查询服务,状态以及进一步控制它们,如同根据您的具体情况调用Start一样。

假设(可能违反更好的判断)你使用.NET,并且由于我对它的亲和力,C#作为语言,请考虑以下内容,以便快速解决这个问题:

//Add a reference to System.ServiceProcess

using System.ServiceProcess;

var services = ServiceController.GetServices();
foreach (var service in services)
{
    if (service.ServiceName == myServiceName &&
        service.Status == ServiceControllerStatus.Stopped)
    {
        service.Start();
    }
}