본문 바로가기

IT/network

[unix] 좀비프로세스

반응형

좀비프로세스


fork()


자식프로세스가 생성된후, 종료되면 종료값을 반환하는데,

이때 반환값은 부모에게 바로 가는것이 아니라, 커널에게 간다.


커널은 해당 반환값을 부모에게 전달한후에 자식프로세스를 소멸시키는데,

해당값을 전달하지 못했을 경우 자식프로세스는 좀비 프로세스가 된다.


자식의 반환값을 가지고있는 커널은

자동으로 부모에게 전달하는게 아니라 부모가 요구해야 전달한다. 


출처 : 열혈강의 TCP/IP 소켓프로그래밍 윤성우저


좀비프로세스 만들기


예)

프로세스시작

fork() 호출

/* 참고 fork() 의 return 값(type pid_t)이 0이면 자식프로세스 */

자식은 프로세스는 바로 종료

부모프로세스는 sleep(20)을 호출하여 바로 종료되지 않도록 함


후면처리후, 해당 프로세스의 상태를 보면 STAT 이 "Z" 인 좀비를 확인할 수 있음


*. 좀비프로세스 방지


=.wait 

=.waitpid


를 활용!!


함수설명은 man 이용


반응형