자식 프로세스가 죽을 때, 발생하는 SIGCHLD 의 개수는 자식의
글쓴이: jagalchee / 작성시간: 일, 2004/05/16 - 12:41오후
멀티 프로세스 모드의 프로그램을 짜고 있습니다.
(fork() 이용)
일반적으로 자식이 죽을 때, 좀비로 남아 있게 하지 않기 위해서 자식이 죽을 때 부모가 SIGCHLD 를 받으면 특정 핸들러를 호출하도록 하는 걸로 알고 있는데요.
제가 궁금한 것은 자식이 죽을 때 마다 죽는 자식의 수 만큼의 SIGCHLD 를 받아서 정확한 수 만큼의 핸들러를 호출하는 것인지가 궁금합니다.
(예전에도 이와 비슷한 질문이 올라왓던거 같긴한데...^^;)
Forums:
UNP 보니까..
UNP 보니까 어떤 시그널을 받아서 처리하고 있을 때
다른 시그널이 발생하여도 대기큐에 쌓아두지 않는다고 합니다.
그래서 그 후에 생긴 시그널이 2-3 개쯤 되어도 하나밖에 처리를
못해준다고 하네요. 그래서 이 책에서는 그 문제를 해결하기 위해서
SIGCHILD 시그널이 발생하면 처리하는 함수에서
wait 을 이용해 루프를 돌면서 좀비상태인 모든 자식 프로세스를 처리하고
끝내네요
참고하셨으면 합니다.
댓글 달기