특정 윈도우 서비스를 감시해서 정지상태일 때 자동으로 시작 시켜야 하는 일이 생겼습니다.
그런데 MS DOCS 에서 예제를 따라했는데
System.ServiceProcess 네임스페이스 부분이 오류가 나더군요… 없다고요…
구글링 해보니깐 기본적으로 설치가 되지 않는다고 그렇게 되있던데요
어떤 해결책 보니깐 solution window 에서 무엇을 해서 추가하는 거 같은데
그 solution window 가 뭔지를 몰라서 처리를 못했습니다.
해당 System.ServiceProcess.dll 를 추가할 수 있는 방법을 알고 싶습니다.
그런데 왜 이게 기본적으로 설치가 안되어 있는 것일까요? 사용법 보니깐 간단하고
용이한 거 같던데 말입니다.
수동으로 서비스를 안하려고 해당 어셈블리를 추가하려는 겁니다.
DB에 해당 프로그램 풀패스값들을 불러와 하나씩 Start 해주는 오픈소스를 가지고 있습니다.
그리고 죽었을 시 다시 해당 프로세스를 시작하는 (Check Alive) 하는 함수도 있는데요
그렇게 해도 시작이 안되는 경우 중앙서버에 해당 살아나지 않는 서비스를 알려야 하는 경우가
있어서 말입니다.
윈도에 자체적으로 복구시키는 기능이 있긴 합니다만 횟수 제한이 있는 것으로 알고 있어요.
기본값이 어떤지는 모르겠지만 제가 사용했던 것은 서비스 시작 실패 시 1초 간격으로 3회까지 시도하고 그래도 실패하면 명령어로 실행하고 이것도 안되면 더 이상 실행하지 않도록 되어있었어요.