336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


1, defunct process


어떤 특정 child process가 자신의 일을 종료하였지만, 


그 종료된  결과 또는 상태를 자신을 만들어준 parent process에게 보고 한후 종료 하려하지만


그 parent 프로세스는 child 프로세스를 기다려주지 않을 경우 이 프로세스는 defunct 라는 모양으로 보여지게 됩니다.


즉 자신에게 주어진 모든 일을 완수는 하였지만, 무슨 이유에서건


(parent가 child보다 먼저 프로세스를 종료하고 없어진 경우, child로 부터의 return값을 받기위해 

wait() system call을 통해서 기다려 주지 않는 경우 등)


자신의 child process를 monitoring해 주지 않으면,  이 프로세스는 쉽게 말해 고아인 프로세스가 되어, 


이 프로세스가 수행되기 위해 할당되었던 모든 환경들은 release 하였지만 프로세스 테이블로 부터는 제거되지 않은 상태로 남게된 프로세스를 말합니다.



2. zombie process가 만들어지는 두가지 발생 경우 


A. zombie process가 되어 버린 경우

  주어진 모든 일을 완수하고 wait 시스템 콜을 사용하여 자신으로 부터의 결과를 기다리는 parent 프로세스가 없으면 ps -l 에서 보여주는 결과에는 "Z" 상태에 있음을  보여 줍니다.


[해결 방법]

이런 경우에는 kill -18를 하여 zombie 프로세스를 없애 버릴수 있으며, 

만약 parent의 PID가 1번이 아니라면 parent 자체를 kill 함으로써 

init 프로세스에게 zombie 프로세스를 clean up 시키도록 할수 있습니다. 



B. 프로세스가 자신의 일을 종료는 하였지만 정상적으로 exit 또는terminate 되지 못한 상태에 있는 경우(즉 할당된 모든 커널자원들을 해제하지 못한 경우)  

이 원인은 일반적으로 어떤 특정 디바이스와의 통신중에 발생하며, 이는 드라이버 프로그램의 bug 이거나 통신선로 상의 데이타들이 XOFF만을 만나게 되어 flushing되지 못했을 경우에 발생됩니다.


[해결 방법]

이런 상태에 있는 것들은 ps -l 에서보면 "S" 상태에 있게 됩니다.이럴때는  (XON)를 보내거나, 현재 묶여져 있는 모든 프로세스들을 kill 시키고 새로운 getty 프로세스를 생성시킴으로써 hung up 현상을 제거 시킬수 있는 경우도 있지만 원하는 결과가 나오지 않는 다면 시스템을 재시동(reboot) 시키는 방법 만이 있을 뿐입니다.


출처: http://twinstarbox.tistory.com/entry/Unix-defunct-프로세스 [쌍둥이별의 보물상자]

Posted by 당양부부34

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함