문제

내 시스템에 소진 된 프로세스가 있습니다.

abc      22093 19508  0 23:29 pts/4    00:00:00 grep ProcA
abc      31756     1  0 Dec08 ?        00:00:00 [ProcA_my_collect] <defunct>

기계의 재부팅없이 위의 프로세스를 어떻게 죽일 수 있습니까? 나는 함께 시도했다

kill -9 31756
sudo kill -9 31756
도움이 되었습니까?

해결책

프로세스를 죽였지만 부모 프로세스가 "rehing"이라는 작업을 수행 할 때까지 프로세스 테이블에서 죽은 프로세스가 사라지지 않습니다 (본질적으로 호출 wait(3) 해당 과정이 출구 상태를 읽으려면). 수확되지 않은 죽은 과정은 ""라고합니다. "좀비 프로세스."

31756에 대해 보는 상위 프로세스 ID는 프로세스 ID 1이며 항상 속합니다. init. 이 프로세스는 좀비 프로세스를 주기적으로 거두어야하지만, 할 수 없다면 재부팅 될 때까지 프로세스 테이블의 좀비로 남아 있습니다.

다른 팁

먼저 살해해야 할 어린이 과정을 확인 했습니까? 때로는 잼 위로가 줄 아래로 ... 시도해 ps -ef --forest

아래에 무엇이 있는지 확인하려면 (무엇이든) 먼저 죽인 다음 이미 알고있는 사람

킬 -9가 프로세스를 죽이지 않으면 원인은 거의 항상 운전자 또는 운영 체제 버그입니다.

INIT 프로세스는 프로세스를 채택했지만이를 거두지 못했습니다. 즉, INIT CALLED가 기다릴 때 (2) 해당 프로세스가 반환되지 않습니다. INIT의 주요 목적 중 하나는 죽은 고아 자녀를 거두는 것입니다. 따라서 문제는 부모가 거두기 전에 죽었다는 것이 아닙니다. 생각 : 그렇지 않으면 누가 로그 아웃 후 Nohup'd 프로세스의 결과를 거두는가?

소멸 된 과정의 어린이를 죽이는 것은 당신이보고있는 특정 버그와 어떻게 든 관련이 없다면 도움이되지 않습니다.

부모를 죽이는 것이 그것을 해결하지 못하면 아마 당신은 아마도 할 수 없을 것입니다. 어떤 이유로 든 시스템은 해당 좀비 프로세스를 수집하지 않습니다.

fwiw, 나는 내가 관리하는 데 사용했던 SCO OpenServer Boxen에서 그것을 꽤 많이 보았다. 다중 사용자 사용량과 낮은 시스템 리소스이지만 아무것도 해치지 않은 것 같습니다. 방금 나를 화나게했다. :)

이 과정은 아마도 SIGPIPE와 같은 신호를 무시하는 예를 들어 strace -p <pid> 여기서 무슨 일이 일어나고 있는지.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top