Linux 시스템에서 좀비 프로세스는 종료되었지만 여전히 시스템에 남아 있는 특수 프로세스입니다. 좀비 프로세스는 리소스를 많이 소모하지 않지만 너무 많으면 시스템 리소스가 고갈될 수 있다. 이 기사에서는 시스템의 정상적인 작동을 보장하기 위해 좀비 프로세스를 올바르게 제거하는 방법을 소개합니다.
자식 프로세스가 작업을 완료한 후 부모 프로세스가 제때에 상태를 확인하지 않으면 자식 프로세스는 좀비 프로세스가 됩니다. 하위 프로세스는 상위 프로세스의 확인을 기다리고 있으며 시스템은 완료될 때까지 이를 재활용하지 않습니다. 그렇지 않으면 좀비 프로세스가 시스템에서 계속 정지됩니다.
시스템에 좀비 프로세스가 있는지 확인하려면 top 명령을 실행하여 실행 중인 모든 프로세스와 가능한 좀비 프로세스를 볼 수 있습니다.
'top' 명령의 결과
위 그림을 보면 리눅스에서 프로세스의 PID 번호를 확인할 수 있고, 오른쪽 상단을 보면 시스템에 좀비 프로세스가 없다는 것도 확인할 수 있습니다.
좀비 프로세스가 시스템에 유해합니까?
좀비 프로세스 자체는 리눅스 시스템에 해를 끼치지는 않지만, 좀비 프로세스가 너무 많으면 사소한 문제가 발생할 수 있습니다.
좀비 프로세스는 작업을 완료하고 상위 프로세스가 처리되기를 기다리는 프로세스입니다. 좀비 프로세스가 너무 많으면 시스템 문제가 발생할 수 있습니다.
좀비 프로세스가 너무 많이 누적되면 시스템 성능이 저하될 수 있습니다. 따라서 이러한 문제를 적시에 확인하고 해결하는 것이 매우 중요합니다. 일반적으로 좀비 프로세스를 정리하는 책임은 해당 상위 프로세스에 있습니다. 상위 프로세스가 좀비 프로세스를 올바르게 처리하지 못하면 시스템 리소스가 낭비될 수 있습니다. 따라서 상위 프로세스의 처리 방식을 신속하게 확인하고 조정하면 좀비 프로세스가 시스템에 미치는 부정적인 영향을 효과적으로 피할 수 있습니다.
좀비 프로세스를 제거하려면 이러한 프로세스를 식별하는 데 도움이 되는 몇 가지 명령을 배워야 합니다.
가장 먼저 확인할 명령어는 ps입니다. ps 명령은 Linux에서 실행 중인 활성 프로세스를 표시합니다.
단, ps 명령만 실행하면 유용한 정보가 많이 표시되지 않습니다. 따라서 원하는 정보를 얻으려면 더 많은 플래그를 추가해야 합니다.
으아악a: 모든 사용자의 프로세스를 표시합니다. u: 프로세스의 사용자/소유자를 표시합니다. x: 터미널에 연결되지 않은 프로세스를 표시합니다.
사진
Linux의 프로세스
위 결과에서 볼 수 있듯이 시스템에는 두 개의 좀비 프로세스가 있습니다. (그들의 STAT는 Z로 표시됩니다)
우리의 목표는 좀비 프로세스를 찾는 것이므로 실행 중인 모든 프로세스를 표시하는 대신 상태 Z의 프로세스(즉, 좀비 프로세스)를 필터링해야 합니다. 이는 grep 명령을 사용하여 달성할 수 있습니다.
으아악다른 프로세스를 제외한 시스템의 모든 좀비 프로세스를 필터링합니다.
참고: 시스템에 좀비 프로세스가 없고 이 문서를 계속 연구하고 싶다면 다음 명령을 실행하여 좀비 프로세스를 만들 수 있습니다.
으아악ps aux | grep 'Z' 명령을 실행하면 grep 명령 자체를 포함하여 문자 'Z'가 포함된 모든 프로세스가 표시됩니다. grep 명령도 프로세스이고, 그 작업이 'Z'를 포함하는 프로세스를 찾는 것이므로 자체적으로 검색되기 때문입니다. 따라서 이 문제를 방지하려면 grep 명령 자체로 생성된 프로세스를 제외하고 실제 좀비 프로세스만 표시할 수 있도록 | grep -v grep 파이프를 하나 더 추가해야 합니다.
지금 좀비 프로세스를 종료하려면 좀비 프로세스를 직접 종료할 수는 없지만 상위 프로세스를 먼저 종료한 다음 좀비 프로세스를 종료할 수 있기 때문에 몇 가지 복잡한 작업이 필요합니다. 이는 좀비 프로세스가 상위 프로세스에 의해 생성되고, 좀비 프로세스는 상위 프로세스가 리소스를 해제할 때까지 시스템에서 재활용될 수 없기 때문입니다.
먼저 다음과 같은 간단한 명령을 사용하여 얻을 수 있는 상위 프로세스를 찾아야 합니다.
으아악(좀비 프로세스 PID를 실제 PID 번호로 교체)
이것은 좀비 프로세스의 상위 프로세스 PID를 표시한 다음 해당 PID를 사용하여 상위 프로세스를 종료합니다.
Linux에서는 프로세스를 종료하는 것이 쉽습니다. 이렇게 하려면 kill 명령을 사용하세요.
으아악이렇게 하면 좀비인 모든 프로세스의 결과가 표시됩니다. PID 번호를 얻은 다음 ps -o ppid= -p [zombie process pid] 명령을 사용하여 좀비 프로세스의 상위 프로세스 PID를 찾아 종료할 수 있습니다.
사진
상위 프로세스 PID 찾기
이 예에는 PID가 109, 117, 119인 세 개의 좀비 프로세스가 있습니다. 여기서는 좀비 프로세스 109의 상위 프로세스를 찾습니다.
으아악결과는 매우 간단합니다. 예에서는 PID 번호인 108
만 표시됩니다.프로세스를 종료하려면 kill 명령을 사용하세요.
으아악이 시점에서 좀비 프로세스 109의 상위 프로세스가 종료되었습니다.
참고: 상위 프로세스를 종료하면 시스템이나 다른 애플리케이션에 부작용이 발생할 수 있으므로 주의해서 수행해야 합니다. 일반적으로 상위 프로세스 종료는 최후의 수단으로 수행되어야 하며 다른 해결 방법을 시도할 때까지 상위 프로세스 종료를 고려하지 않는 것이 가장 좋습니다.
예제에서는 테스트 목적으로 직접 만든 프로세스를 종료했으므로 괜찮지만 실제로 상위 프로세스를 종료하기로 결정한 경우 수행 중인 작업을 이해해야 합니다. 먼저, 상위 프로세스를 찾아 그것이 무엇을 하는지, 무엇을 하는지 확인한 다음, 프로세스를 종료하여 아무 것도 손상시키지 않는지 확인하십시오. 마지막으로 위의 명령을 사용하여 종료할 수 있습니다.
이 기사를 읽으면서 좀비 프로세스가 문제를 일으킬 수는 있지만, 특히 좀비 프로세스가 함께 붐비기 시작할 때 좀비 프로세스가 그렇게 끔찍하지는 않다는 것을 독자들이 이해할 수 있기를 바랍니다. ps aux | grep "Z"를 사용하여 좀비 프로세스를 찾고 시스템을 손상시키지 않고 해당 프로세스와 상위 프로세스를 종료하는 방법을 배웠습니다.
위 내용은 Linux에서 좀비 프로세스를 올바르게 종료하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!