Friday, July 20, 2012

Ищем и убиваем zombie процессы


1)
top | grep zombie
225 processes: 1 running, 222 sleeping, 2 zombie
2)
ps aux | grep -w Z
root 3994 0,0 0,0 0 0 ?? Z 13июн11 16:23,02 <defunct>
root 3995 0,0 0,0 0 0 ?? Z 13июн11 13:43,28 <defunct>
Что касается «убийства», то их нельзя просто так убить. Самый правильный вариант – найти родительский процесс и перезапустить его. Некоторые могут посоветовать и перегрузиться, но это не выход.
Находим родительский процесс:
ps ajx | grep -w Z
root 3994 3992 3992 3992 0 Z ?? 16:23,02 <defunct>
root 3995 3992 3992 3992 0 Z ?? 13:43,28 <defunct>
3-я колонка как раз и показывает pid родительского процесса. Смотрим, что это за процесс:
ps auxww | grep 3992
root 3992 0,0 0,2 30664 9872 ?? Ss 13июн11 0:08,21 [exilog_agent] (perl5.12.3)
Собственно мы нашли виновника. Это exilog_agent. А дальше – либо просто прибиваем родительский процесс либо перезапускаем его:
#kill -9 3992
#top | grep zombie
#

No comments:

Post a Comment