이 메시지는 컴퓨터에 로그인 할 때 나타납니다 …
There is 1 zombie process.
- 그것은 무엇을 말하고 있습니까?
- 내가 걱정해야 할 것이 있습니까?
- 그렇다면 어떻게해야하며 어떻게해야합니까?
답변
걱정할 것이 없습니다 :
좀비
Unix 운영 체제에서 좀비 프로세스 또는 사용하지 않는 프로세스는 실행이 완료되었지만 프로세스 테이블에 여전히 항목이있어 프로세스를 시작한 프로세스가 종료 상태를 읽을 수 있도록하는 프로세스입니다. 이 용어의 다채로운 은유에서 자식 프로세스는 죽었지 만 아직 거두지 않았습니다.
프로세스가 종료되면 프로세스와 관련된 모든 메모리와 리소스가 할당 해제되어 다른 프로세스에서 사용할 수 있습니다. 그러나 프로세스 테이블에 프로세스 항목이 남아 있습니다. 부모에게는 자녀가 사망했음을 나타내는 SIGCHLD 신호가 전송됩니다. 이 신호의 처리기는 일반적으로 대기 상태 호출을 실행하여 종료 상태를 읽고 좀비를 제거합니다. 그런 다음 프로세스 테이블의 좀비 프로세스 ID와 항목을 재사용 할 수 있습니다. 그러나 부모가 SIGCHLD를 무시하면 좀비가 프로세스 테이블에 남습니다. 예를 들어, 부모가 다른 자식 프로세스를 생성하는 경우 동일한 프로세스 ID가 할당되지 않도록하는 경우가 있습니다.
출처 : http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process
답변
허용 된 답변에 설명 된 것처럼 실행을 완료했지만 여전히 프로세스 테이블에있는 프로세스가 있습니다 : https://serverfault.com/a/390216/48449
하나의 프로세스 일지라도 해를 입히지 말아야하지만 여전히 발생해서는 안됩니다. 너무 많아서이를 생성하는 상위 프로세스를 재부팅하거나 다시 시작하지 않으면 허용되는 최대 프로세스 수에 도달하여 심각한 문제가 발생할 수 있습니다.
걱정이 적절한 지, 좀비가 속한 다른 프로세스를 찾으려면 다음과 같이 작동합니다.
ps -elf --forest | grep -C5 '<[d]efunct>'
부모 프로세스를 찾으려면 필요한 경우 컨텍스트 행 수를 늘리고 종료 된 하위 프로세스를 “수거”하도록 해당 프로세스를 수정하십시오.