tgoop.com/go_interview_lib/312
Last Update:
💬 Когда процесс может не реагировать на SIGKILL в Unix-подобных операционных системах, включая Linux?
Сигнал SIGKILL (`kill -9`) предназначен для немедленного принудительного завершения процесса и не может быть перехвачен или обработан программно, что обеспечивает его высокую надежность.
Однако существуют особые случаи, когда процесс может не реагировать на SIGKILL:
1. Зомби-процессы: если процесс уже завершил выполнение и находится в состоянии "зомби", он не будет реагировать на SIGKILL, так как фактически уже завершен и ждет очистки из таблицы процессов.
2. Процессы, ожидающие завершения ввода-вывода на уровне ядра: если процесс застрял в незавершенной операции ввода-вывода в ядре, SIGKILL может не остановить процесс до тех пор, пока системный вызов не вернется из ядра.
3. Процессы в непрерывном взаимодействии с аппаратным обеспечением: аналогично предыдущему пункту, если процесс находится в состоянии ожидания аппаратного события, которое не происходит, ядро может не суметь прервать эту блокировку, и процесс продолжит висеть.
4. Процесс является процессом init, не получающим от ОС сигналов, которые он не хочет обрабатывать. Процесс init может игнорировать SIGKILL, так как он является особым процессом, который отвечает за запуск и завершение других процессов.
BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/312