본문 바로가기
프로그래밍

[좀비 프로세스 죽이기]pid kill -9 해도 안죽고 다른 PID로 바뀔경우(zombie pid)

by Mr.noobiest 2023. 11. 16.

 

kill -9 PID를 했는데도 해당 프로세스가 종료되지 않는 이슈가 발생했다.

일단 이유부터 알아보자

 

원인

해당 프로세스가 독립적으로  실행된게 아니라 다른 프로세스를 거쳐서 실행된 경우 이런 증상이 발생한다.

즉, 부모  프로세스(PPID)가 있는 경우에 좀비 프로세스가 만들어지는 것이다.

 


 

 

이슈 발생 확인

 

gunicorn을 사용해서 어떠한 프로세스를  실행했는데, 실수로 cmd창을 끄게되어  다시 실행하려고 했다.

netstat를 사용해서 내가 사용중이던 포트를 찾았다.

 

> netstat -nltp | grep 포트번호
결과 : tcp        0      0 IP:포트번호     0.0.0.0:*               LISTEN      PID번호/python

>kill -9 포트번호
>netstat -nltp | grep 포트번호
결과 : tcp        0      0 IP:포트번호     0.0.0.0:*               LISTEN      PID번호가 바뀜/python

 

위에처럼 kill -9를 했는데도  안죽는다(sudo로 해도 안된다)

 

 


 

 

해결

1) netstat -nltp | grep 포트번호로 PID 번호를 먼저 찾는다.

2) ps -ef | grep 찾은 PID번호

3) 사용자명 / 찾은 PID번호 / PPID번호 / 0 / 실행일 / 실행프로세스 경로

4) kill -9 PPID번호로 죽이면 된다. 

5) 이후 1)에서 실행중인 프로세스를 다시 찾고, kill -9 PID번호로 실행중인 프로세스를 마저 종료하면 끝!

 


 

 

코드

netstat -nltp | grep 포트번호

ps-ef | grep 찾은 PID번호

kill -9 PPID번호

 

 

 

 

끝!

728x90
반응형