PID를 변경하는 좀비 프로세스가 있는데 프로세스가 증가하고 있습니다. N보다 큰 PID를 가진 프로세스를 종료할 수 있습니까?
답변1
넌 좀비를 죽일 수 없어. 이름에서 알 수 있듯이 죽었습니다. 좀비 프로세스는 실제 프로세스가 아니며 단지 프로세스 테이블의 항목일 뿐이며 상위 프로세스가 이를 알아차리기를 기다리고 있습니다.
프로세스는 프로세스 ID를 변경하지 않습니다.. 새로운 프로세스 ID가 표시된다면 이는 무언가가 프로세스 ID를 생성하고 있기 때문입니다.
종료하려는 프로세스가 모니터링되고 있는 경우 모니터는 해당 프로세스가 종료되었음을 확인하고 새 인스턴스를 시작합니다. 그러나 모니터를 사용하면 모니터가 자식 프로세스를 모니터링하므로 프로세스가 좀비가 되지 않습니다.
당신이 보고 있는 것은 좀비이기 때문에 그 부모는 그 아이들에게 관심을 기울이지 않습니다. 상위 프로세스가 무엇인지 확인하십시오. ps -o ppid -p 1234
여기서 1234는 좀비 프로세스의 PID이고 ps -p 2345
2345는 상위 프로세스의 PID입니다. 그런 다음 부모를 기반으로 무엇을 할지 결정합니다. 예를 들어 해당 자식 생성을 중지하도록 구성합니다.
답변2
이 명령은 pkill
시스템에서 사용할 수 있습니다. PID 대신 프로세스 이름 패턴을 인수로 사용하므로, 예를 들어 프로세스를 종료하려는 경우 PID 대신 이름으로 종료할 프로세스를 지정할 수 있습니다 httpd
.
pkill http
필요한 경우 -9
프로세스를 가혹하게 중지하려면 논쟁이 필요할 수도 있습니다.
기본적으로 인수로 제공된 패턴과 일치하는 모든 프로세스에 영향을 미칩니다. 따라서 pgrep
명령 앞의 인수와 동일한 패턴을 사용하는 것이 좋습니다. 그러면 일치하는 모든 프로세스가 나열되므로 예기치 않은 프로세스가 종료되지 않도록 할 수 있습니다.
이러한 명령은 다양한 추가 필터를 허용하여 다양한 기준에 따라 선택을 제한하고, 필요한 경우 주저하지 말고 해당 매뉴얼 페이지에서 상황에 적용되는 필터를 확인하세요.
답변3
pkill -f string
여기서 문자열은 프로세스 이름의 일부입니다.