0

我想编写管理另一个窗口服务并检查它是停止还是运行的窗口服务。

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

我的根服务在特定时间运行。

4

3 回答 3

1

看一下ServiceController类:

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


例子:

要启动服务,您将使用如下代码:

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

该类有一个Status属性,您可以使用它来检查您要监视的服务是正在运行还是已停止。


选择:

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

检查服务是否正在运行:

sc query YourServiceName

启动服务:

net start YourServiceName

停止服务:

net stop YourServiceName
于 2012-07-16T06:43:19.723 回答
1

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

于 2012-07-16T06:43:32.590 回答
0

创建一个监视您的服务的 windows 服务。您服务中的代码将是

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

其中 ServiceToWatch 是您要监视的服务的名称(无论是否运行)

于 2012-07-16T06:43:18.080 回答