ps의 출력에서 ​​<defunct>는 무엇을 의미합니까?


15

나는 ps -ef|grep java명령 을 내렸고 이것은 내가 얻은 항목 중 하나입니다.

subhrcho   875   803  0 Jan23 pts/5    00:02:27 [java] <defunct>

<defunct>여기에 무엇을 의미합니까? 해당 프로세스는 PID = 875 인 프로세스의 상태는 무엇입니까?

답변:


16

로부터 PS 맨 :

표시된 프로세스 <defunct>는 부모가 프로세스를 제대로 파괴하지 않았기 때문에 남아있는 죽은 프로세스 (소위 "좀비")입니다. 부모 프로세스가 종료되면 이러한 프로세스는 init (8)에 의해 제거됩니다.


자식 프로세스의 파괴를위한 부모 프로세스와 자식 프로세스 사이의 계약은 무엇입니까? 나는 부모에게 그것이 파괴되고 있음을 알리는 것이 자식 프로세스의 의무라고 생각 했습니까?
Geek

@Geek 커널은 자식 프로세스를 파괴하고 부모에게 알립니다. 아이 _exit는 신호 만 부르 거나 죽습니다. 커널이 프로세스를 파괴 할 때 남아있는 것은 프로세스 테이블에있는 항목입니다. 부모 (또는 고아의 경우 프로세스 1)가 호출하면 사라집니다 wait.
Gilles 'SO- 악마 그만해'

2
@Giles 맨 페이지가 부모가 자식 프로세스를 제대로 파괴하지 않았다고 말하면 무엇을 의미합니까? 부모님이 전화를 기다리지 않았습니까?
Geek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.