vfork 로 생성된 프로세스 죽이기

글쓴이: 익명 사용자 / 작성시간: 화, 2001/10/09 - 12:35오후
a 란 프로세스에서 무한루프를 돌면서
필요할때마다 다음과 같이 b라는 프로세스를 생성합니다.
while(1) {
................
if((pid=vfork())==0) execv("/bin/b",NULL);
.................
}
이렇게 하면 새로운 프로세스가 생기면서 b 가 수행되는데
문제는 b가 다 수행된 후 프로세스가 sleep 모드로 들어가 있습니다.
그리고 계속 새로운 프로세스가 생성되서 ps 해보면 sleep 모드에 있는
b 라는 프로세스가 엄청나네요.. 흑흑..
그래서 b 의 수행이 끝나면 프로세스도 같이 없애고 싶은데
어떻게 해야하나요?
고수님의 답변을...~~@!~~~~
Forums:
Re: vfork 로 생성된 프로세스 죽이기
sleep 모드가 아니고 좀비 아닌가요?
좀비를 없애 주시려면..
SIGCHLD 시그널 핸들러를 SIG_IGN 로 하시거나..-- signal(SIGCHLD,SIG_IGN)
직접 signal(SIGCHILD,&handler); 하셔서..
hanlder 에서..wait 함수나 waitpid 함수를 호출하시면 됩니다.~~~
Re^2: vfork 로 생성된 프로세스 죽이기
캄사함다...
제가 착각을 했네요...
sleep 이 아니라 Z 로 좀비로 남았었던거네요...
알려주신데로 해서 해결된거 같습니다...
감사감사~ 수고하세요
댓글 달기