linux 에서 부모프로세스가 SIGCHLD 를 받는 경우는 언제인가요?

trymp의 이미지

제가 리눅스에서 부모와 자식기반의 socketpair 를 이용한

통신프로세스를 만들었는데요. socketpair -> fork

자식프로세스가 죽으면 SICHLD 를 받는다는 건 알겠는데,

자식프로세스가 죽지 않는 경우에도 부모프로세스가 SIGCHLD 를 받는 경우가 있나요?

이상하게 자식 프로세스 PID 가 그대로 인데, SIGCHLD 를 받더군요.

SIGCHLD 에 대해서 잘 아시는 분 조언 좀 부탁드려요..

ymir의 이미지

child 가 종료하면 defuct 상태가 됩니다. (zombie)
parent 나 init 이 wait 하기 전에는 process list 에서 사라지지 않습니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

trymp의 이미지

답변 달아주셔서 감사합니다. 그런데 child 프로세스는

defunt 나서 zombi 가 된 상태는 아니었습니다.

일반적인 sleep 상태였습니다.