Как завершить процесс в Linux

Завершение процесса в Linux

Вы когда-нибудь сталкивались с ситуацией, когда вы запускали приложение, и оно внезапно, во время работы, переставало отвечать и неожиданно вылетало? Вы пытаетесь снова запустить приложение, но ничего не происходит, потому что исходный процесс приложения никогда полностью не завершается.

Что ж, с каждым из нас когда-то такое случалось, не так ли? Решение — завершить или отменить процесс подачи заявки. Но как?

К счастью, в Linux есть несколько утилит, позволяющих завершать ошибочные процессы.

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

Описанные ниже действия будут работать во всех дистрибутивах Linux.

Завершение процессов с помощью команды kill

Чтобы завершить процесс командой kill , необходимо сначала узнать его PID. Это можно сделать с помощью различных команд, таких как top , ps , pidof и pgrep .

Предположим, браузер Firefox перестал отвечать, и вам нужно завершить его процесс. Чтобы узнать идентификатор процесса, используйте команду pidof :

 pidof firefox

Команда выведет все процессы Firefox:

 2551 2514 1963 1856 1771

Как только вы узнаете, что Firefox обрабатывает PID, чтобы завершить все процессы, отправьте сигнал TERM :

 kill -9 2551 2514 1963 1856 1771

Завершение процессов с помощью команды killall

Команда killall завершает все программы, соответствующие указанному имени.

Используя тот же сценарий, что и раньше, вы можете завершить процесс Firefox, введя:

 killall -9 firefox

killall принимает несколько параметров, таких как отправка сигналов процессам, принадлежащим определённому пользователю, сопоставление имён процессов с регулярными выражениями и время создания. Вы можете получить список всех параметров, введя команду killall (без аргументов) в терминале.

Например, чтобы завершить все процессы, запущенные от имени пользователя «sara», выполните следующую команду:

 sudo killall -u sara

Завершение процессов с помощью команды pkill

pkill завершает процессы, соответствующие шаблону, указанному в командной строке:

 pkill -9 firefox

Название процесса не обязательно должно точно совпадать.

С помощью pkill вы также можете отправить сигнал процессам, владельцем которых является определённый пользователь. Чтобы завершить только процессы Firefox, принадлежащие пользователю «sara», введите:

 pkill -9 -u sara firefox

Заключение

Завершение неотвечающих программ с помощью команд kill , killall и pkill — простая задача. Вам нужно знать только имя процесса или PID.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

убить терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *