"Есть 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>'

При необходимости увеличьте количество строк контекста, чтобы узнать о родительском процессе, в идеале исправьте этот процесс, чтобы он "пожинал" свои завершенные подпроцессы.

Другие вопросы по тегам