В этой статье вы узнаете как использовать команды kill, killallи pkill для завершения процесса в Linux.
Основное различие между этими инструментами заключается в том, что они kill
завершают процессы на основе идентификатора процесса (PID), в то время как команды killall
и pkill
завершают запущенные процессы на основе их имен и других атрибутов.
Обычные пользователи могут убивать свои собственные процессы, но не те, которые принадлежат другим пользователям, в то время как пользователь root может убивать все процессы.
Команды процессам системы
kill
, killall
, и pkill
отправить данный сигнал указанным процессам или группам процессов. Если сигнал не указан, каждый инструмент отправляет 15
( TERM
).
Наиболее часто используемые сигналы:
1
(-HUP): перезагрузить процесс.9
(-KILL): убить процесс.15
(-TERM): изящно остановить процесс.
Сигналы могут быть указаны тремя различными способами:
- используя число (например, -1)
- с префиксом «SIG» (например, -SIGHUP)
- без префикса «SIG» (например, -HUP).
Используйте -l
опцию, чтобы вывести список всех доступных сигналов:
kill -l # or killall -l
Завершение процессов с помощью kill
команды
Чтобы сначала завершить процесс с помощью kill
команды, вам нужно найти PID процесса. Вы можете сделать это с помощью различных команд, таких как top
, ps
, pidof
и pgrep
.
Допустим, браузер Google перестал отвечать на запросы, и вам нужно завершить процесс браузера. Чтобы узнать идентификатор процесса, используйте pidof
команду:
pidof google
Как только вы узнаете, что Firefox обрабатывает PID, чтобы завершить все из них, отправьте TERM
сигнал:
kill -9 2551 2514 1963 1856 1771
Завершение процессов с помощью killall
команды
Команда killall
завершает все программы, соответствующие указанному имени.
Используя тот же сценарий, что и раньше, вы можете завершить процесс Google, набрав:
killall -9 google
killall
принимает несколько параметров, таких как отправка сигналов процессам, принадлежащим данному пользователю, сопоставление имен процессов с регулярными выражениями и время создания. Вы можете получить список всех опций, набрав killall
(без каких-либо аргументов) на своем терминале.
Например, чтобы завершить все процессы, запущенные от имени пользователя «dev», вы должны выполнить следующую команду:
sudo killall -u dev
Завершение процессов с помощью pkill
команды
pkill
завершает процессы, соответствующие шаблону, указанному в командной строке:
pkill -9 google
Имя процесса не обязательно должно совпадать.
С помощью pkill
вы также можете отправить сигнал процессам, которые принадлежат данному пользователю. Чтобы убить только процессы google, принадлежащие пользователю «dev», введите:
pkill -9 -u dev google
0 комментариев