Middle
24
0
questionbank

Какой из сигналов: SIGTERM или SIGKILL может породить зомби-процессы?

Answer from sobes.tech neural network

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

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

Зомби-процесс возникает, когда дочерний процесс завершается, но его родитель не вызывает функцию wait() или waitpid() для сбора статуса завершения. Родительский процесс ответственен за сбор статуса завершенных дочерних процессов. Независимо от того, как завершился дочерний процесс (по SIGTERM, SIGKILL или по другой причине), он становится зомби до тех пор, пока родитель его не "соберет" или сам родитель не завершится.

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

Пример на C, демонстрирующий создание зомби:

c

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

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

Зомби-процесс возникает, когда дочерний процесс завершается, но его родитель не вызывает функцию wait() или waitpid() для сбора статуса завершения. Родительский процесс ответственен за сбор статуса завершенных дочерних процессов. Независимо от того, как завершился дочерний процесс (по SIGTERM, SIGKILL или по другой причине), он становится зомби до тех пор, пока родитель его не "соберет" или сам родитель не завершится.

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

Пример на C, демонстрирующий создание зомби:

c

Register or sign in to get access to full answers for all questions from the question bank.

operating-systemprocess-managementsignalszombie-processes