我如何编写Windows服务来管理其他Windows服务?(我可以吗?)

时间:2012-07-16 06:36:32

标签: c# windows windows-services

我想写一个管理另一个窗口服务的窗口服务,并检查它是否已停止或正在运行。

如果它已停止,那么我的root服务将再次启动服务。

我的root服务正在运行一段时间。

3 个答案:

答案 0 :(得分:1)

查看ServiceController课程:

  

表示Windows服务,允许您连接到正在运行的或   停止服务,操纵它或获取有关它的信息。


示例:

要启动服务,您可以使用以下代码:

ServiceController service = new ServiceController("YourServiceName");
service.Start()

该类具有Status属性,您可以使用该属性检查要监视的服务是否正在运行或停止。


<强>替代:

您还可以使用命令行工具来检查/启动/停止服务。

检查服务是否正在运行:

sc query YourServiceName

启动服务:

net start YourServiceName

停止服务:

net stop YourServiceName

答案 1 :(得分:1)

您可以使用ServiceController类控制其他服务。

答案 2 :(得分:0)

创建一个监控服务的Windows服务。您服务中的代码将是

 var Service = new ServiceController(servicetowach);
                    if (Service.Status != ServiceControllerStatus.Running
                        && Service.Status != ServiceControllerStatus.StartPending)
                    {
Service.Start();
}

ServiceToWatch是否是您要观看的服务名称