2009-09-08 11 views
2

나는 O.S.에 의해 통보되어야하는 프로그램을 작성하고 싶다. 해당 OS에서 실행중인 프로세스가 종료 될 때마다Windows 및 Linux에서 프로세스가 종료 될 때 알림을 받으려면 어떻게합니까?

이전의 기존 프로세스가 중단 된 경우 매번 폴링하고 비교하고 싶지 않습니다. 프로세스 종료가 발생할 때마다 OS에 알리는 프로그램을 원합니다.

어떻게 해결할 수 있습니까? 일부 샘플 코드는 매우 유용합니다.

추 신 : Java/C++에서 접근 방법을 찾고 있습니다.

답변

1

유닉스에서는 sigchld 신호를 사용하여 프로세스가 종료되었음을 알릴 수 있습니다. 그러나 모니터링되는 프로세스는 모니터링 프로세스의 하위 프로세스이어야합니다.

Windows에서는 프로세스에 대한 유효한 핸들이 필요할 수 있습니다. CreateProcess을 사용하여 직접 프로세스를 생성하는 경우 핸들을 무료로 가져 오거나 다른 방법으로 획득해야합니다. 그런 다음 핸들에서 WaitForSingleObject을 호출하여 프로세스가 종료 될 때까지 대기 할 수 있습니다.

죄송합니다. 죄송합니다. 죄송합니다. 죄송합니다.이 문제에 대한 예제 코드가 없습니다. 나는 윈도우에서 프로세스 핸들을 기다리는 것이 프로세스 종료를 기다리고 있다고 확신하지는 않는다. (프로세스 핸들이 "시그널링 된"상태 또는 뭔가를 입력하게하는 다른 중요한 "조건"과는 대조적이다.)

+0

안녕 더크는, 그것은 그런 식으로도 가능 보인다. 나는 그것을 밖으로 시도 할 것이다. 감사. –

관련 문제