Недавно у меня была странная зависание сторонней программы. Он прекращает принимать ввод или вывод, а ^ C и ^ \ ничего не делают. kill -9
и уничтожение родительского процесса действительно заканчивают его.
В каком состоянии может находиться процесс, когда SIGTERM не работает, а SIGKILL работает? И о каких опасностях я должен знать, когда использую SIGKILL, как это?
Программы (и сценарии) могут захватить и обработать или проигнорировать любой сигнал кроме 9 (SIGKILL). SIGKILL является последним средством, потому что он аннулирует любую очистку выхода, которую могла бы сделать программа. Действие по умолчанию для любого сигнала должно завершить процесс, таким образом, можно попробовать другие числа, чтобы видеть, обрабатывает ли программа их или завершается. См. список всех возможных сигналов с командой:
kill -L
Обычно, программа обработает всего несколько из этих 62 возможностей кроме SIGKILL.