"1 좀비 프로세스가 있습니다"


33

이 메시지는 컴퓨터에 로그인 할 때 나타납니다 ...

There is 1 zombie process.
  • 그것은 무엇을 말하고 있습니까?
  • 내가 걱정해야 할 것이 있습니까?
  • 그렇다면 어떻게해야하며 어떻게해야합니까?

19
근처에 이중 배럴 산탄 총이 있습니까?
EEAA

답변:


27

걱정할 것이 없습니다 :

좀비

Unix 운영 체제에서 좀비 프로세스 또는 사용하지 않는 프로세스는 실행이 완료되었지만 프로세스 테이블에 여전히 항목이있어 프로세스를 시작한 프로세스가 종료 상태를 읽을 수 있도록하는 프로세스입니다. 이 용어의 다채로운 은유에서 자식 프로세스는 죽었지 만 아직 거두지 않았습니다.

프로세스가 종료되면 프로세스와 관련된 모든 메모리와 리소스가 할당 해제되어 다른 프로세스에서 사용할 수 있습니다. 그러나 프로세스 테이블에 프로세스 항목이 남아 있습니다. 부모에게는 자녀가 사망했음을 나타내는 SIGCHLD 신호가 전송됩니다. 이 신호의 처리기는 일반적으로 대기 상태 호출을 실행하여 종료 상태를 읽고 좀비를 제거합니다. 그런 다음 프로세스 테이블의 좀비 프로세스 ID와 항목을 재사용 할 수 있습니다. 그러나 부모가 SIGCHLD를 무시하면 좀비가 프로세스 테이블에 남습니다. 예를 들어, 부모가 다른 자식 프로세스를 생성하는 경우 동일한 프로세스 ID가 할당되지 않도록하는 경우가 있습니다.

출처 : http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process


고마워 마크 좋은 설명; 이제 어떻게 찾아서 보관할 것인지를 결정하고 그렇지 않은 경우 제거하십시오 (그리고 메시지).
John Mee

Usaly 그들은 스스로 자극을 줄 것입니다. 이것이 정말로 당신을 자극한다면, 부모 프로세스 PID를 재부팅하거나 찾아서 죽일 수는 있지만 좀비를 남겨두고있는 것에 달려 있습니다. 이는 특정 프로세스를 죽이는 데 문제가 될 수 있습니다.
Marc-Andre R.

2
이것이 귀하의 질문에 대한 진정한 답변이라면 내 답변을 수락하는 것을 잊지 마십시오.) 감사합니다!
Marc-Andre R.

10
죄송합니다, 당신은 그의 질문의 첫 부분에만 대답했습니다. 걱정해야하는지, 어떻게해야하는지 여전히 불분명합니다.

0

허용 된 답변에 설명 된 것처럼 실행을 완료했지만 여전히 프로세스 테이블에있는 프로세스가 있습니다 : https://serverfault.com/a/390216/48449

하나의 프로세스 일지라도 해를 입히지 말아야하지만 여전히 발생해서는 안됩니다. 너무 많아서이를 생성하는 상위 프로세스를 재부팅하거나 다시 시작하지 않으면 허용되는 최대 프로세스 수에 도달하여 심각한 문제가 발생할 수 있습니다.

걱정이 적절한 지, 좀비가 속한 다른 프로세스를 찾으려면 다음과 같이 작동합니다.

ps -elf --forest | grep -C5 '<[d]efunct>'

부모 프로세스를 찾으려면 필요한 경우 컨텍스트 행 수를 늘리고 종료 된 하위 프로세스를 "수거"하도록 해당 프로세스를 수정하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.