SIGCHLD 핸들러에 wait, waitpid 처리를 해줬는데도 child exit시에 zombie가 생긴다?
| 프로그래밍/System (Linux/FreeBSD) 2007. 8. 2. 10:18mother가 child를 생성(fork 등으로)하고, child가 종료되는 경우, mother쪽에서 wait 혹은 waitpid를 호출해줘야 child의 자원을 돌려받고 child는 완전히 free되게 되는데, 이 처리는 구현의 편의성에 의해서 SIGCHILD 핸들러에 wait 혹은 waitpid 처리를 해 주는 경우가 많다.
간단한 예를 들어보면,
참고 사이트 : 조인시 위키: Zombie 프로세스 에 대한 고찰 (Zombie 프로세스에 대한 설명과 wait의 메카니즘에 대해서 간단하게 나와있다.)
참고 사이트 : 중복 실행 막기 (KLDP의 QnA중 일부이며, Inter Process Lock의 일부와 Mutex에 대해 약간은 참고할만 하다.)
간단한 예를 들어보면,
참고 사이트 : 조인시 위키: Zombie 프로세스 에 대한 고찰 (Zombie 프로세스에 대한 설명과 wait의 메카니즘에 대해서 간단하게 나와있다.)
참고 사이트 : 중복 실행 막기 (KLDP의 QnA중 일부이며, Inter Process Lock의 일부와 Mutex에 대해 약간은 참고할만 하다.)
'프로그래밍 > System (Linux/FreeBSD)' 카테고리의 다른 글
FreeBSD: Default Router를 가져오고 변경하는 System Call (0) | 2007.08.14 |
---|---|
C Programming을 통해서 서버의 Local IP를 알아내는 방법 (0) | 2007.08.13 |
Ramdisk 사용법 (FreeBSD, Linux) (0) | 2007.07.30 |
ps에 나오는 프로세스의 이름 바꾸기 (FreeBSD, linux) (0) | 2007.07.25 |
Linux에서 Disk의 I/O 정보를 알아오는 방법 (0) | 2007.07.24 |