>  기사  >  운영 및 유지보수  >  Linux 좀비 프로세스를 종료할 수 없는 경우 수행할 작업

Linux 좀비 프로세스를 종료할 수 없는 경우 수행할 작업

WBOY
WBOY원래의
2022-05-23 14:38:208086검색

종료할 수 없는 Linux 좀비 프로세스에 대한 해결 방법: 1. cat 명령을 사용하여 좀비 프로세스의 상위 프로세스 ID를 확인합니다. 구문은 "cat /proc/zombie 프로세스의 프로세스 ID/상태"입니다. kill 명령을 사용하면 상위 프로세스 ID를 볼 수 있습니다. 그냥 종료하세요. 구문은 "kill -9 상위 프로세스의 프로세스 번호"입니다.

Linux 좀비 프로세스를 종료할 수 없는 경우 수행할 작업

이 튜토리얼의 운영 환경: 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

Linux 좀비 프로세스를 종료할 수 없는 경우 수행할 작업

2. "Kill -9 the process number of the parent process"를 사용하면 상위 프로세스가 삭제됩니다.

Linux 좀비 프로세스를 종료할 수 없는 경우 수행할 작업

권장 학습: Linux 비디오 튜토리얼

위 내용은 Linux 좀비 프로세스를 종료할 수 없는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.