종료할 수 없는 Linux 좀비 프로세스에 대한 해결 방법: 1. cat 명령을 사용하여 좀비 프로세스의 상위 프로세스 ID를 확인합니다. 구문은 "cat /proc/zombie 프로세스의 프로세스 ID/상태"입니다. kill 명령을 사용하면 상위 프로세스 ID를 볼 수 있습니다. 그냥 종료하세요. 구문은 "kill -9 상위 프로세스의 프로세스 번호"입니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
kill 명령을 사용하여 Linux 시스템에서 프로세스를 종료할 수 있습니다. 이름에도 불구하고 kill 명령과 기타 명령 세트(예: pdill 및 killall)는 특정 신호를 하나 이상의 프로세스에 보내도록 작성/설계되었습니다. 지정되지 않은 경우 전송되는 기본 신호는 프로세스를 종료하는 SIGTERM 신호입니다.
부모 프로세스가 죽거나 죽고 그 자식 프로세스가 부모 프로세스와 함께 죽지 않으면 우리는 그 프로세스를 고아 프로세스라고 부릅니다.
좀비 프로세스를 죽이는 방법
한편, 좀비 프로세스는 이미 죽었기 때문에 죽일 수는 없습니다!
각 하위 프로세스가 종료되면 좀비 프로세스가 됩니다. 그런 다음 상위 프로세스에 의해 삭제됩니다. 프로세스가 존재를 종료하고 사용한 리소스를 해제해도 해당 이름은 여전히 OS 프로세스 테이블에 남아 있습니다. 그런 다음 해당 이름은 상위 프로세스에 의해 프로세스 테이블에서 제거됩니다. 실패하면 좀비 프로세스가 생기지만 이는 더 이상 실제 프로세스가 아니고 운영 체제 프로세스 테이블의 항목일 뿐입니다.
죽은(좀비) 프로세스에서 kill -9(SIGKILL) 명령을 사용해도 작동하지 않는 이유는 죽일 것이 없기 때문입니다.
따라서 좀비 프로세스를 종료하고 프로세스 목록에서 해당 이름을 제거하려면 해당 상위 프로세스를 종료해야 합니다. 예를 들어 PID 5878이 좀비 프로세스이고 그 부모가 PID 4809인 경우 좀비(5878)를 죽이려면 PID 4809도 종료해야 합니다.
sudo kill -9 4809 #4809 is the parent, not the zombie
그러나 부모 프로세스를 죽일 때는 매우 주의해야 합니다. 프로세스의 상위 프로세스가 PID 1이고 이를 종료하면 시스템이 다시 시작됩니다.
예는 다음과 같습니다.
1 하위 프로세스를 기반으로 상위 프로세스 보기
cat /proc/pid/status
2. "Kill -9 the process number of the parent process"를 사용하면 상위 프로세스가 삭제됩니다.
권장 학습: Linux 비디오 튜토리얼
위 내용은 Linux 좀비 프로세스를 종료할 수 없는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!