실행하면 top
보기에 좋지 않은 줄이 표시됩니다.
2475 www-data 20 0 0 0 0 Z 1 0.0 0:00.19 apache2 <defunct>
왜 이 과정이 진행 <defunct>
되고 어떻게 해야 합니까?
답변1
무해합니다. 무시해도 됩니다. 이것은 좀비 프로세스입니다. 매뉴얼 페이지 ps
에는
Z Defunct ("zombie") process, terminated but not reaped by its parent.
Wikipedia 페이지도 참조하세요.좀비 프로세스.
정말로 제거하고 싶다면 apache2를 다시 시작하면 됩니다. 기계를 다시 시작하면 확실히 문제가 해결되지만 꼭 필요한 것은 아닙니다.
이 문제도 비슷합니다. -상위 프로세스가 init인 <defunct> 프로세스를 종료하는 방법은 무엇입니까?
답변2
실패한 프로세스는 좀비 프로세스입니다. Kill 명령은 좀비 프로세스에 영향을 주지 않습니다. 이는 상위 프로세스를 종료하여 종료할 수 있습니다. PPID 값에서 상위 항목을 찾을 수 있습니다. PPID가 1(init)인 경우, 즉 init
상위 프로세스가 더 이상 존재하지 않기 때문에 프로세스가 조정된 경우 다시 시작하는 것이 유일한 해결 방법입니다.
답변3
SIGCHLD
부모 프로세스를 종료하는 대신 부모 프로세스에 신호를 보낼 수 있습니다 . 상위 프로세스가 이 신호에 등록하고 wait
시스템 호출을 호출하면 존재하지 않는 프로세스가 삭제됩니다.