случаи, когда SIGKILL не будет работать - PullRequest
3 голосов
/ 22 декабря 2011

Есть ли случаи, когда приложение, работающее на Linux, которое не заблокировало сигнал SIGKILL, не будет убито при срабатывании сигнала SIGKILL?

Ответы [ 3 ]

8 голосов
/ 22 декабря 2011

SIGKILL не может быть заблокировано или проигнорировано (SIGSTOP также не может).

Процесс может перестать отвечать на сигнал, если он заблокирован «внутри» системного вызова (ожидание при I /O является одним из примеров - ожидание ввода-вывода в сбойной файловой системе NFS, которая, например, жестко смонтирована без опции intr).

(Другой побочный случай - процессы зомби, но на самом делепроцессы в этой точке.)

3 голосов
/ 22 декабря 2011

Да, когда процесс заблокирован в пространстве ядра, например, чтение в заблокированной файловой системе NFS или на устройстве, которое не отвечает.

1 голос
/ 17 октября 2017

Проверьте с помощью ps a (или вы можете использовать и другие флаги) состояние процесса. Если состояние процесса

D : uninterruptible sleep (usually IO)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...