2016-04-12 3 views
0

На моем RHEL 6.7 VM количество процессов зомби увеличивается со временем. Зомби не потребляют никакой памяти или процессора, но я вижу, что они используют верхнюю команду. Я использовал #kill -9 PID и #kill -SIGCHLD PID, но ничего не происходит.Процесс зомби не очищается

Я пытался #kill -9 4650 и #kill -SIGCHLD 4650. (4650 - PPID) Также пытался убить ребенка. при убийстве ребенка он не обнаруживает ошибки. при убийстве родителя он показывает «Операция не разрешена»

+0

Звучит так, как будто он застрял в режиме бесперебойного системного вызова. Я бы запустил «strace» и попытался выяснить, что сидит. – bluerojo

+0

Или ваш не root и процесс принадлежит root. – bluerojo

ответ

1

Родительский процесс не «вытирает» их. Родительский процесс должен вызывать системный вызов wait.

Быстрое решение - убить родительский процесс. Затем они становятся сиротами и исчезнут с top, так как init сортирует проблему.

+0

При попытке убить родительский процесс с правами root, он говорит: «Операция не разрешена» –

+0

Вы пытаетесь убить процесс, являющийся родителем процесса зомби (не 'init') –

+0

root 17597 4650 0 Апр11? 00:00:00 [seosd] корень 17710 4650 0 апр. 11? 00:00:00 [seosd] корень 17768 4650 0 апр. 11? 00:00:00 [report_agent.sh] Я пытался #kill -9 4650 и #kill -SIGCHLD 4640. Также пытался убить ребенка. при убийстве ребенка он не обнаруживает ошибки. при убийстве родителя он показывает «Операция не разрешена». –

0

Они не потребляют память или процессор, потому что процесс зомби - это просто запись состояния процесса без связанного с ней процесса. Он остается позади, так что родительский процесс может узнать код выхода дочернего процесса. Если вы не являетесь автором программы родительского процесса и не намерены ее исправлять, нет никакой большой выгоды, чтобы попытаться заставить их исчезнуть.

Смежные вопросы