2011-08-02 2 views
0

부모가 사망 한 경우 자식 프로세스를 다른 자식 프로세스의 보호자로 설정하는 기능이 QNX procmgr_guardian에 있습니다. Linux에도 이러한 기능이 있습니까? Linux에서 어떻게 구현합니까? 모든 포인터는 감사하겠습니다.부모가 사망 한 경우 자식 프로세스에 대한 보호자 프로세스 설정

+0

과거에받은 답변 중 일부를 수락하기 위해 돌아 가면 답변을 얻으실 수 있습니다 ... – bdonlan

+0

죄송합니다. 죄송합니다. 무슨 뜻이야? – Vin

+0

오케이. 미안합니다. 이제 알겠다 ! : – Vin

답변

0

자신의 자녀가 아닌 프로세스를 모니터링하는 직접적인 방법은 없습니다. 그러나 사용할 수있는 해킹이 있습니다. pipe()을 사용하여 FIFO를 만듭니다. 모니터링 할 프로세스가 파이프의 쓰기 끝을 보유하는지 확인하십시오 (다른 모든 프로세스에서 닫혀 있음). 프로세스가 종료되면 파이프의 읽기 끝에 EOF 조건이 표시됩니다 (즉, select는 읽을 수있는 조건을 나타냄).

직접 부모가 죽었을 때 부모 프로세스가 변경되도록하려면 PID namespaces으로 처리 할 수 ​​있습니다. '보호자'프로세스가 PID 네임 스페이스에서 PID 1이되도록 조정하면 해당 네임 스페이스의 모든 고아 프로세스가 상속됩니다.

+1

이것은 자식이 아닌 프로세스를 모니터링하기위한 것이 아닙니다. "procmgr_guardian() 함수는 데몬 프로세스가 자식 프로세스가 사망 한 경우 하위 프로세스를 부모로 인계한다고 선언하도록 허용합니다." http://www.qnx.com/developers/docs/6.4.1/neutrino/lib_ref/p/procmgr_guardian.html 리눅스에 비슷한 기능이 있는지 알고 싶습니다. 자식 프로세스의 부모를 "init"이 아닌 다른 프로세스로 변경할 수있다. – Vin

관련 문제