Windows 서비스가 실행 중인지 확인하는 방법
Windows 서비스로 구현 된 'watchdog'과 통신하는 C # (XP Embedded에서 실행중인 2.0) 응용 프로그램이 있습니다. 장치가 부팅되면 일반적으로이 서비스를 시작하는 데 시간이 걸립니다. 서비스가 실행되고 있는지 코드에서 확인하고 싶습니다. 어떻게하면됩니까?
나는 이와 같은 것이 효과가 있다고 생각한다.
System.ServiceProcess
프로젝트 참조에 추가 하십시오 (.NET 탭에 있음).
using System.ServiceProcess;
ServiceController sc = new ServiceController(SERVICENAME);
switch (sc.Status)
{
case ServiceControllerStatus.Running:
return "Running";
case ServiceControllerStatus.Stopped:
return "Stopped";
case ServiceControllerStatus.Paused:
return "Paused";
case ServiceControllerStatus.StopPending:
return "Stopping";
case ServiceControllerStatus.StartPending:
return "Starting";
default:
return "Status Changing";
}
편집 : sc.WaitforStatus()
원하는 상태와 시간 초과를 사용하는 방법이 있지만 사용하지는 않았지만 필요에 맞을 수 있습니다.
편집 : 상태를 얻은 후 상태를 다시 얻으려면 sc.Refresh()
먼저 전화해야합니다 .
참조 : .NET의 ServiceController 객체.
여기에서는 로컬 컴퓨터에서 사용 가능한 모든 서비스와 상태를 얻을 수 있습니다.
ServiceController[] services = ServiceController.GetServices();
foreach(ServiceController service in services)
{
Console.WriteLine(service.ServiceName+"=="+ service.Status);
}
루프 내에서 서비스를 service.name 속성과 비교하면 서비스 상태를 얻을 수 있습니다. 자세한 내용은 함께 가야를 들어 http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx 도 http://msdn.microsoft.com/en-us/library/microsoft.windows.design .servicemanager (v = vs.90) .aspx
참고 URL : https://stackoverflow.com/questions/178147/how-can-i-verify-if-a-windows-service-is-running
'IT story' 카테고리의 다른 글
Java에서 연산자 오버로드 (0) | 2020.05.26 |
---|---|
Matplotlib에서 하위 플롯에 제목을 추가하는 방법은 무엇입니까? (0) | 2020.05.26 |
MySQL LEFT JOIN으로 행 삭제 (0) | 2020.05.26 |
JavaScript에서 현재 실행중인 함수의 이름을 얻을 수 있습니까? (0) | 2020.05.26 |
1… 1이 10.1로 평가되는 이유는 무엇입니까? (0) | 2020.05.26 |