Инструменты пользователя

Инструменты сайта


linux_noparent

Что происходит, когда дочерний процесс умирает, не имея родителя, который бы дождался окончания его работы?

В том случае, когда родительский процесс завершается, но не убивает свои работающие дочернии процессы, эти дочерние процессы остаются сиротами. Процессы - сироты сразу же усыновляются процессом init. Таким образом, сирота — становится просто обычным процессом который будет вполне корректно завершен.

Совсем другое дело, если родительский процесс все еще существует, но по какой то причине (завис, перегружен и т.д.) не может обработать завершение дочернего процесса, то такой дочерний процесс становится зомби.

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

linux_noparent.txt · Последнее изменение: 2022/08/09 06:35 — admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki