В этой статье вы узнаете как использовать команды 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