Зомби-процесс (defunct process) — это процесс, который завершил свое выполнение, но его запись в таблице процессов (PCB - Process Control Block) все еще присутствует в системе, ожидая, пока родительский процесс прочитает его статус завершения с помощью системного вызова wait()
или waitpid()
. Если родительский процесс не делает этого или завершается раньше, зомби остается.
Завершить сам зомби-процесс напрямую невозможно, так как он уже не выполняет код. Для его "завершения" необходимо:
Убить родительский процесс. Когда родительский процесс завершается, операционная система (init или systemd) принимает всех его осиротевших дочерних процессов. Новый родительский процесс (PID 1) обычно выполняет wait()
для своих дочерних процессов, собирая их статус завершения и позволяя системе полностью освободить ресурсы, занимаемые зомби.
bash
Зомби-процесс (defunct process) — это процесс, который завершил свое выполнение, но его запись в таблице процессов (PCB - Process Control Block) все еще присутствует в системе, ожидая, пока родительский процесс прочитает его статус завершения с помощью системного вызова wait()
или waitpid()
. Если родительский процесс не делает этого или завершается раньше, зомби остается.
Завершить сам зомби-процесс напрямую невозможно, так как он уже не выполняет код. Для его "завершения" необходимо:
Убить родительский процесс. Когда родительский процесс завершается, операционная система (init или systemd) принимает всех его осиротевших дочерних процессов. Новый родительский процесс (PID 1) обычно выполняет wait()
для своих дочерних процессов, собирая их статус завершения и позволяя системе полностью освободить ресурсы, занимаемые зомби.
bash
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.