"Есть 1 процесс зомби"
Это сообщение появляется при входе на мою машину...
There is 1 zombie process.
- Что это говорит мне?
- Это то, о чем я должен беспокоиться?
- Если да, то что мне делать и как?
3 ответа
Не о чем беспокоиться
Живой мертвец
В операционных системах Unix процесс-зомби или несуществующий процесс - это процесс, который завершил выполнение, но все еще имеет запись в таблице процессов, позволяющую процессу, запустившему его, прочитать свое состояние завершения. В красочной метафоре термина дочерний процесс умер, но еще не был пожнен.
Когда процесс завершается, вся память и ресурсы, связанные с ним, освобождаются, чтобы их могли использовать другие процессы. Однако запись процесса в таблице процессов остается. Родителю отправляется сигнал SIGCHLD, указывающий, что ребенок умер; Обработчик этого сигнала обычно выполняет системный вызов ожидания, который считывает состояние выхода и удаляет зомби. Идентификатор процесса зомби и запись в таблице процессов могут быть использованы повторно. Однако, если родитель игнорирует SIGCHLD, зомби останется в таблице процессов. В некоторых ситуациях это может быть желательно, например, если родитель создает другой дочерний процесс, он гарантирует, что ему не будет присвоен тот же идентификатор процесса.
Источник: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process
Мне удалось завершить процесс зомби, следуя этому руководству — https://vitux.com/how-to-kill-zombie-processes-in-ubuntu-18-04/.
По сути:
1) Определить зомби-процесс:
ps axo stat,ppid,pid,comm | grep -w defunct
2) Убейте родительский процесс:
sudo kill -9 <parent_process_number>
Как объясняется в принятом ответе, у вас есть процесс, который завершил выполнение, но все еще находится в таблице процессов: /questions/322822/est-1-protsess-zombi/322826#322826
Это не должно причинять вреда, если это всего лишь один процесс, но все же не должно происходить. Если их слишком много, и вы не перезагружаете или перезапускаете вызывающий родительский процесс, который их производит, вы можете достичь максимально допустимого числа процессов и вызвать серьезные проблемы.
Чтобы выяснить, является ли беспокойство уместным и к какому другому процессу относится зомби, это работает для меня:
ps -elf --forest | grep -C5 '<[d]efunct>'
При необходимости увеличьте количество строк контекста, чтобы узнать о родительском процессе, в идеале исправьте этот процесс, чтобы он "пожинал" свои завершенные подпроцессы.