Sobes.tech
Back to questions
Middle+
3

Как убить процесс в Linux? Что делать, если kill pid не помогает?

Companies where asked
Ozon ФинтехOzon Финтех

Answer from AI

sobes.tech AI

В Linux процесс можно убить с помощью команды kill и указания PID (идентификатора процесса):

kill <pid>

По умолчанию отправляется сигнал SIGTERM (15), который корректно завершает процесс.

Если процесс не реагирует на SIGTERM, можно отправить более жесткий сигнал SIGKILL (9), который принудительно завершает процесс:

kill -9 <pid>

Если даже kill -9 не помогает, возможно, процесс находится в состоянии "D" (uninterruptible sleep), например, ждет ввода-вывода или заблокирован на уровне ядра. В этом случае процесс нельзя убить до тех пор, пока не завершится системный вызов или не освободится ресурс.

Для диагностики можно использовать:

  • ps aux | grep <pid> — посмотреть состояние процесса (столбец STAT)
  • top или htop — мониторинг процессов
  • strace -p <pid> — отследить системные вызовы процесса

Если процесс завис из-за проблем с оборудованием или файловой системой, нужно решать проблему на этом уровне.