Введение
Существуют различные способы эффективного уничтожения процесса: остановить процесс по имени, убить процесс, указав часть имени, убить процесс, подчеркнув процесс курсором и т. д. Все следующие соглашения об уничтожении будут отправлять сигнал TERM указанному процессу. Для сигналов можно использовать имя сигнала или номер сигнала. Вы должны найти PID процесса и указать его в качестве аргумента для завершения процесса.
Как убить или остановить процесс в Linux
Чтобы убить процесс, используйте команду kill. Однако эту команду также можно использовать для отправки различных сигналов различным процессам. Чтобы увидеть список сигналов, которые вы можете отправить, введите:
kill -l
С каждой командой связан номер. Например:
kill -9 5187
Где -9 — это номер сигнала для отправки, а 5187 — это PID процесса, который мы хотим завершить.
Внимание, этот список зависит от используемой системы.
Вот параметры, которые могут быть более полезными:
- SIGHUP — используется для отправки процессу запроса на отбой ; некоторые процессы, получившие сигнал такого типа, перезапускаются путем перезагрузки своего конфигурационного файла;
- SIGQUIT - используется для отправки программе запроса на выход;
- SIGTERM - это достаточно мягкий запрос на завершение: в этом случае процесс должен запустить некоторые процедуры перед завершением;
- SIGKILL — используется для уничтожения процесса, когда SIGQUIT и SIGTERM не работают.
Чтобы убедиться, что процесс действительно завершен, просто снова проверьте список процессов.
С помощью команды pkill вы можете указать имя процесса, имя пользователя или другой метод, чтобы указать, какому процессу (или процессам) отправлять сигнал. Таким образом, нет необходимости использовать PID процесса:
pkill sleep
Следующее отправит сигнал уничтожения всем процессам, принадлежащим пользователю noviello:
pkill -u noviello
Прежде чем использовать команду pkill, используйте команду pgrep -l, чтобы просмотреть PID процесса и имя соответствующего процесса или процессов:
pgrep -l sleep
Команда killall требует имя процесса вместо PID и уничтожит все процессы, соответствующие этому имени.
Например:
killall -9 apache2
Может случиться так, что универсальных команд для уничтожения процесса, таких как kill, killall или pkill, может быть недостаточно.
Чтобы окончательно завершить процесс, используйте команду -KILL.
Сначала определите его PID процесса, а затем уничтожьте его следующим образом:
pidof apache2
sudo kill -KILL 5187