Sobes.tech
Middle+

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

sobes.tech AI

Отговор от AI

В Linux процес може да бъде убит с помощта на командата kill и посочване на PID (идентификатор на процеса):

kill <pid>

По подразбиране се изпраща сигнал SIGTERM (15), който правилно завършва процеса.

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

kill -9 <pid>

Ако дори kill -9 не помага, процесът може да е в състояние "D" (непрекъсваем сън), например чака вход/изход или е блокиран на ниво ядро. В този случай процесът не може да бъде убит, докато системният повик не приключи или ресурсът не бъде освободен.

За диагностика може да се използват:

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

Ако процесът е блокиран поради проблеми с хардуера или файловата система, трябва да се реши проблемът на този ниво.