Как остановить процесс в Linux с помощью команды kill.

В предыдущей статье «процессы linux» мы узнали как можно посмотреть запущенные процессы в linux-системах и их разновидности. Сегодня познакомимся с вопросом «как остановить процесс в Linux«.

В Linux доступно несколько сигналов, которые можно использовать для прерывания, завершения или приостановки процессов.
Для этого нам поможет команда kill, которая имеет свои ключи и сигналы.

Для начала познакомимся с ключом:

kill -l

который выведет таблицу — это сигналы, более 60 штук.

Когда мы даем команду kill, то систему посылает сигнал завершить процесс. Нас интересуют всего два сигнала из шестидесяти: SIGTERM (15) и SIGKILL (9).

SIGKILL (9) — Всегда прекращает выполнение процесса. Скажем так, аварийное завершение работы процесса, без сохранения важных данных.
SIGTERM (15) — Требование закончить процесс (программное завершение). Данный сигнал может не завершить процесс по каким-либо причинам, но при возможности завершения процесса он делает это аккуратно, последовательно, для сохранения необходимых данных.

Здесь можно сделать вывод, что kill -9 нужно выполнять только в крайних случаях.
Пользователь под root может закрыть все процессы всех пользователей, но другие пользователи могут закрыть только те процессы, которые были запущены от его имени.

Теперь рассмотрим примеры:
1. Выводим список процессов командой:

ps -aux

, после чего видим подробную информацию о процессах в том числе PID, имя процесса.
2.

kill 1422 - данная команда завершит процесс под PID 1422.

также можно завершить сразу несколько процессов (1422, 1378. 1655):

kill 1422 1378 1655
kill PID1 PID2 PID3

если после данной команды процесс не завершился, то вводим команду с сигналом -9

kill -9 1422
kill -9 PID

после чего, процесс принудительно завершится.
Команда pkill позволяет завершить процесс по его имени. Например закроем процесс apache2:

pkill apache2
pkill <имя процесса>

Командой killall <имя процесса> мы можем закрыть все экземпляры процесса, например:

killall opera

Вы можете проверить список процессов с похожим названием, используя лишь часть имени:

pgrep -l chr

Эта команда выведет список процессов с соответствующим ID процесса.

Как убить процесс в Linux с помощью команды killall.

Основное различие между killall и kill заключается в том, что killall может завершить процесс по имени, в то время как команда kill использует pid.

Пример такой команды:

killall chrome

Команда напоминает pkill. Однако killall использует точное соответствие имени, а pkill может убить процесс, сопоставив паттерн. Это одна из причин, по которой killall безопаснее, чем pkill.

Ещё одно отличие – это корневой пакет, к которому принадлежат команды. В Linux, killall принадлежит пакету psmisc. С другой стороны, такие команды, как ps, top, kill, pkill, принадлежат пакету procps.

Кроме того, killall можно настроить для завершения процессов на основе временных меток. Например, если вы хотите убить процесс, который работал менее 40 минут, вы можете использовать:

killall -y 40m [<Имя_Процесса>]

Вы также можете использовать следующие параметры вместе с командой killall:

  • s – секунды
  • m – минуты
  • h – часы
  • d – дни
  • w – недели
  • M – месяцы
  • y – годы

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

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.