Когда процесс в операционной системе Linux не отвечает или потребляет слишком много аппаратных ресурсов нашей системы, единственным вариантом может быть его остановка или, как говорят, «убийство». Многие процессы имеют свой собственный способ остановки. К сожалению, процессы могут давать сбои, и может потребоваться ввод команды вручную, чтобы их остановить.
В этом руководстве мы познакомимся с тем, как остановить процесс или Kill Process в Linux.
Как найти Process ID или Process Name
Прежде чем остановить процесс, необходимо найти его местоположение. Это можно сделать, найдя имя запущенного процесса (Process Name) или его соответствующий ID (Process ID или PID).
Существует несколько способов найти процесс в Linux:
- С помощью команды ps
- С помощью команд pgrep или pidof
- Или с помощью команд top в Linux
Поиск процесса с помощью команды ps
Команда ps отображает полный список запущенных процессов, в зависимости от опции, которую мы указываем.
ps [option]
Каждая опция имеет определенную функцию и выполняет определенную задачу при вводе. Опции, которые мы можем ввести для команды ps, следующие:
- Опция -a. Отображение всех процессов, относящихся ко всем пользователям системы.
- Опция -u. Предоставление подробной информации о каждом процессе в системе.
- Опция -x. Предоставление процессов, которые контролируются демонами (программами, которые запускаются с момента загрузки системы и не контролируются пользователем), а не пользователями системы.
Например, команда ps -aux отправляет полный список всех процессов с подробной информацией о них:

Поиск Process ID или PID с использованием команд pgrep или pidof
В Linux команда pgrep представляет собой более сложный способ поиска процесса. Команда pgrep возвращает процессы на основе определенного критерия выбора, называемого шаблоном (pattern). Шаблон (pattern) — это, по сути, регулярное выражение. Например, в шаблоне a* символ * означает что угодно вместо любого количества символов.
pgrep [options] [pattern]
Опции команды pgrep:
- Опция -l. Предоставляет список имен процессов и их PID.
- Опция -n. Отображает самый новый процесс.
- Опция -o. Отображает самый старый процесс.
- Опция -u. Отображает процессы, принадлежащие определенному пользователю в системе.
- Опция -x. Отображает процессы, которые полностью совпадают с заданным шаблоном.
Например, команда pgrep -l -u root отображает имена процессов и PID, принадлежащие пользователю root в системе:

Команда pidof используется для поиска идентификатора процесса (PID), передавая ей имя процесса.
pidof [options] [program]
Вот некоторые из опций команды pidof:
- Опция -o. Исключить PID.
- Опция -s. Отображать только один PID.
- Опция -x. Отображать PID скриптов, которые выполняются системными интерпретаторами.
Например, чтобы получить PID процесса sshd, выполните команду pidof sshd:

Поиск запущенных процессов с помощью команды top
Команда top — это самый простой способ получить полную информацию о запущенных процессах. Чтобы просмотреть полный список запущенных процессов, используйте эту команду:
top
Выполнив эту команду, вы создадите интерактивный режим в команде top, который отображает различную информацию, такую как PID, пользователей, связанных с этим процессом, объем аппаратных ресурсов (CPU и память), потребляемых каждым процессом, а также время его выполнения.

Чтобы выйти из среды команды top, используйте клавишу q.
Как завершить процесс (kill)
Фактически, завершение (kill) процесса означает его завершение в системе. Для этого сначала получите необходимые права доступа и убедитесь, что ваша учетная запись пользователя может это сделать.
Пользователь root может завершить все процессы. Используйте команду sudo перед выполнением любой команды для завершения процесса, чтобы выполнить эту команду от имени пользователя root, или войдите в оболочку от имени пользователя root перед выполнением команд.
Завершение (kill) процесса отправляет сообщение целевому процессу с инструкцией о его завершении. Эти сообщения называются сообщениями о завершении (termination). Существует несколько различных типов сообщений о завершении:
- Сообщение SIGKILL. Отличный способ дать команду на завершение процесса. В этом случае процесс завершается внезапно и с сообщением об ошибке. SIGKILL — это способ, который всегда должен работать. Если SIGKILL не работает, это означает, что в операционной системе есть ошибка и проблема.
- Сообщение SIGTERM. В отличие от SIGKILL, это сообщение может быть заблокировано или как-то иначе обработано. Это сообщение используется для завершения процесса в системе и является относительно более спокойным способом сделать это.
Для большинства применений SIGKILL является более практичным и быстрым способом завершения процесса.
Команда killall
Команда killall завершает процесс, получив его имя, или, как говорят, «убивает» его. По умолчанию эта команда отправляет сообщение SIGTERM для выполнения этой задачи. Кроме того, killall может завершать несколько процессов одновременно с помощью одной команды.
killall [process]
Команда killall включает в себя несколько различных опций:
- Опция -e. Останавливает процессы с тем же именем, в дополнение к указанному процессу.
- Опция -I. Имена процессов рассматриваются без учета регистра (не case sensitive) и процесс завершается.
- Опция -i. Перед завершением процесса запрашивает у пользователя подтверждение. После подтверждения пользователя команда выполняется.
- Опция -u. Завершает только процессы, принадлежащие указанному пользователю.
- Опция -v. После завершения процесса возвращает сообщение об успешном завершении операции.
Помимо возможности завершения процессов по имени, команда killall также позволяет завершать процессы на основе их возраста.
- Опция -o. Завершает все процессы, время начала которых больше указанного значения.
- Опция -y. Завершает все процессы, время начала которых меньше указанного значения.
Например, команда killall -o 15m завершит все процессы, время работы которых превышает 15 минут, а команда killall -y 15m завершит все процессы, время работы которых меньше 15 минут.
Команда pkill
Команда pkill аналогична команде pgrep, которая завершает процесс, используя его имя. По умолчанию команда pkill отправляет сообщение SIGTERM:pkill [options] [pattern]
Опции команды pkill:
- Опция -n. Завершает только самый новый процесс.
- Опция -o. Завершает только самый старый процесс.
- Опция -u. Завершает только процесс, принадлежащий указанному пользователю.
- Опция -x. Завершает только процесс, который имеет точно такое же имя, как и шаблон.
- Опция -signal. Отправляет указанный сигнал процессу вместо сигнала SIGTERM по умолчанию.
Например, эта команда завершает самый новый процесс, созданный пользователем root:
pkill -n -u root
Команда xkill
Команда xkill — это специальная команда для разрыва соединения между сервером и его пользователями.
xkill [resource]
В случае возникновения нежелательных процессов на сервере, мы можем остановить их с помощью xkill.
Также, если мы выполним команду xkill без каких-либо входных данных, откроется новый интерфейс для пользователя, чтобы он мог завершить нужные процессы.
Команда top
Как мы объяснили, команда top открывает интерфейс с информацией о запущенных процессах для пользователя.
top
Эта команда также имеет возможность завершить процесс. После выполнения команды top, нажав клавишу k и введя PID соответствующего процесса, мы можем его завершить.