Команда Kill, Pkill, Killall. Как Убить Процесс в Linux
Задачи в Linux называются процессами. Каждый процесс имеет уникальный идентификатор. Чтобы завершить запущенные процессы Linux, мы можем использовать команду kill. В этом руководстве мы покажем вам, как убить процесс в Linux, чтобы улучшить ваши навыки управления VPS.
Иногда вы можете запустить сервер или приложение, забыть об этом, и вам нужно его выключить. В таких сценариях мы можем использовать команду kill.
Ниже приведены несколько примеров, в которых может быть полезна команда kill:
- Чтобы остановить любой автоматизированный процесс
- Чтобы остановить процесс, который был запущен случайно
- Чтобы остановить процесс, который потребляет много памяти
- Чтобы принудительно остановить любой процесс, запущенный в Linux
- Чтобы остановить фоновый процесс
Помимо остановки процесса, команда kill может выполнять ещё несколько функций. Например, послать сигнал процессу. По умолчанию это воспринимается как сигнал TERM, который завершает процесс.
Оглавление
Как узнать идентификатор процесса (PID) в Linux
Команды kill позволяют завершить процесс, используя идентификатор процесса, также известный как pid. Чтобы узнать pid процесса в Linux, выполните следующую команду:
ps
Команда перечислит все доступные процессы с pid. Если вы хотите сделать свой список более конкретным – добавьте команду grep следующим образом:
ps -ux | grep java
В этом примере, команда выведет все запущенные Java-процессы.
Как показать все сигналы команды kill
В Linux доступно несколько сигналов, которые можно использовать для прерывания, завершения или приостановки процессов. Вот пример использования команды:
kill -l
Эта команда отобразит страницу руководства с различными сигналами kill с их именами и соответствующими номерами. Несмотря на то, что доступно несколько сигналов, в большинстве случаев мы будем использовать SIGKILL (9) и SIGTERM (15).
Как убить процесс в Linux с помощью терминала
Теперь мы готовы двигаться дальше и изучать различные способы использования команды kill. Чтобы продолжить, войдите на свой VPS-сервер с помощью SSH.
Использование команды kill с PID
Чтобы убить процесс с определённым PID, используйте следующую команду:
kill 63772
Здесь 63772 – это идентификатор процесса, который мы хотим завершить. Поскольку сигнал не указан, это будет сигнал SIGTERM. Иногда это может не сработать; в этом случае вам, возможно, придётся принудительно убить процесс.
В таких случаях вы можете использовать формат команды, как показано ниже:
kill [Сигнал_или_Опция] pid
Ниже приведён пример команды для принудительного завершения процесса:
kill SIGKILL 63772
Точно так же вы можете использовать сокращённый вариант команды для завершения процесса Linux:
kill -9 63772
Замените 63772 соответствующим pid для прекращения процесса.
Как убить несколько процессов в Linux
С помощью одной и той же команды вы можете убить несколько процессов. Синтаксис этой команды будет следующим:
kill -9 pid1 pid2 pid3
Вот пример, показывающий, как это будет выглядеть на практике:
kill -9 63772 45116 23465
Как убить процесс в Linux с помощью команды Pkill
Pkill – разновидность команды kill, в которой вы можете указать имя процесса или паттерн для его поиска:
pkill chrome
Приведенная выше команда завершит работу браузера Chrome. Вы также можете указать частичное совпадение запроса в командной строке, например:
pkill chr
Однако вы рискуете убить неправильный процесс, особенно когда существует несколько процессов с одинаковым или похожим именем.
Вы можете проверить список, указав полное имя процесса:
pidof chrome
Вышеупомянутую команду можно использовать, если вы знаете полное имя процесса.
Вы можете проверить список процессов с похожим названием, используя лишь часть имени:
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 – годы
Итоги
В этом руководстве мы охватили наиболее важные и полезные команды kill в Linux. Теперь вы знаете, как использовать эту утилиту, чтобы убить процесс. Если вы хотите узнать больше о её возможностях, обратитесь к руководству по Linux. Удачи в вашем проекте, до встречи в следующем уроке!