1 개요[ | ]
- 안 죽는 좀비 프로세스 죽이기
- 안 죽는 좀비 프로세스를 죽인다는 말에는 어폐가 있다. 이미 죽었는데 껍데기(?)가 남아 있는 것뿐이기 때문이다. 어쨌든 제거해보자.
2 kill 안됨[ | ]
Console
Copy
[root@zetawiki ~]# ps -ef | grep defunct | grep -v grep
testuser 10668 10667 0 Apr04 ? 00:00:00 [myscript.sh] <defunct>
- → 10668 프로세스가 좀비 상태임.
Console
Copy
[root@zetawiki ~]# kill -9 10668
[root@zetawiki ~]# ps -ef | grep defunct | grep -v grep
testuser 10668 10667 0 Apr04 ? 00:00:00 [myscript.sh] <defunct>
- → 죽여도 안 죽음. 좀비.
3 부모 프로세스 확인 후 조치[ | ]
Console
Copy
[root@zetawiki ~]# ps -ef | grep 10667 | grep -v grep
testuser 10667 21229 0 Apr04 ? 00:00:00 crond
testuser 10668 10667 0 Apr04 ? 00:00:00 [myscript.sh] <defunct>
testuser 10689 10667 0 Apr04 ? 00:00:00 /usr/sbin/sendmail -FCronDaemon
- → 부모 프로세스는 crond (10667)
Console
Copy
[root@zetawiki ~]# ps -ef | grep 21229 | grep -v grep
testuser 10667 21229 0 Apr04 ? 00:00:00 crond
root 21229 1 0 Feb27 ? 00:00:02 crond
- → 조부모 프로세스는 root의 crond (21229)
조부모 프로세스(21229)는 그냥 두고 부모 프로세스(10667)만 죽이면 된다..
Console
Copy
[root@zetawiki ~]# kill -9 10667
[root@zetawiki ~]# ps -ef | grep defunct | grep -v grep
- → 좀비 제거 완료.[1]
여기까지만 해도 되지만 뭔가 찜찜하니 crond 재시작
Console
Copy
[root@zetawiki ~]# service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
4 같이 보기[ | ]
5 참고[ | ]
- ↑ kill 시킨 testuser crond는 구동할 필요가 없다. 각 계정 crond 프로세스는 root crond가 예약된 작업을 수행할 동안만 있는 것이다.
편집자 Jmnote Jmnote bot 183.98.31.109 210.110.136.153
로그인하시면 댓글을 쓸 수 있습니다.