我想编写管理另一个窗口服务并检查它是停止还是运行的窗口服务。
如果它停止,那么我的根服务将再次启动服务。
我的根服务在特定时间运行。
看一下ServiceController类:
表示 Windows 服务,并允许您连接到正在运行或已停止的服务、操作它或获取有关它的信息。
例子:
要启动服务,您将使用如下代码:
ServiceController service = new ServiceController("YourServiceName");
service.Start()
该类有一个Status属性,您可以使用它来检查您要监视的服务是正在运行还是已停止。
选择:
您还可以使用命令行工具来检查/启动/停止服务。
检查服务是否正在运行:
sc query YourServiceName
启动服务:
net start YourServiceName
停止服务:
net stop YourServiceName
您可以使用ServiceController类控制其他服务。
创建一个监视您的服务的 windows 服务。您服务中的代码将是
var Service = new ServiceController(servicetowach);
if (Service.Status != ServiceControllerStatus.Running
&& Service.Status != ServiceControllerStatus.StartPending)
{
Service.Start();
}
其中 ServiceToWatch 是您要监视的服务的名称(无论是否运行)