yandex

Команды kill и killall в Linux: как завершить ненужные процессы

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

Инструкции
Иллюстрация для статьи на тему «Команды kill и killall в Linux: как завершить ненужные процессы»
Продукты из этой статьи:
Иконка-Evolution Image
Evolution Image
Иконка-Evolution Object Storage
Evolution Object Storage
Иконка-Evolution Compute
Evolution Compute
Команда killall в терминале LinuxКоманда killall в терминале Linux

Подготовка к завершению процессов

Прежде чем «убить» какой-либо процесс в ОС Linux, нужно узнать его идентификатор — PID. В Linux существует несколько способов его найти, включая команды ps, top и pidof. Рассмотрим их.

Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим
Поиск PID процессаПоиск PID процесса

Команда ps

Команда ps возвращает статический снимок текущих процессов. Она полезна в тех случаях, если вы хотите получить всю информацию — в том числе PID — по всем процессам в системе. Для этого введите в терминал:

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

А еще с помощью команды ps можно вывести информацию о конкретном процессе, использовав его имя: 

Команда top     

Чтобы отслеживать процессы в реальном времени, а не в статике, как при работе с командой ps, вы можете использовать команду top. Иными словами, для динамического мониторинга введите в терминал: 

Так вы сможете увидеть таблицу, где процессы системы сортируются по убыванию нагрузки на центральный процессор. Чтобы обнаружить в этом списке конкретный процесс и определить его PID, нажмите / и введите его имя.

Команда pidof

Команда pidof позволяет идентифицировать PID нежелательного процесса в случае, если вы знаете о том, каким исполняемым файлом он был запущен. Для этого введите в терминал команду:

В случае если процесс в данный момент активен, ОС отобразит вам его PID. 

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

Как только вы узнали уникальный идентификатор процесса (PID), можете сразу воспользоваться командой kill. В операционной системе Linux эта команда является стандартным инструментом для управления процессами.

В большинстве случаев синтаксис команды будет выглядеть так: kill [опция] PID. То есть сразу после kill следует:

  • указать номер сигнала — это числовое значение, которое определяет, какой именно сигнал будет отправлен процессу для управления его выполнением;

  • ввести уникальный идентификатор процесса (PID), который вы получили ранее. 

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

Однако, если завершить задачу с помощью kill PID не удалось, нужно использовать специальные сигналы:

  • SIGTERM (15). Сигнал, который используется по умолчанию и сообщает процессу о завершении. Большинство программ при получении SIGTERM без каких-либо заминок освобождают ресурсы, завершают операции и корректно закрываются с сохранением данных. 

  • SIGKILL (9). Отправляет процессу команду на принудительное завершение. Используется, если задача игнорирует сигнал SIGTERM и продолжает выполняться. 

Еще для завершения процессов в Linux могут использоваться такие сигналы, как SIGSTOP (19)  и SIGCONT (18). Первый приостанавливает процесс без его завершения (делает паузу), а второй — возобновляет выполнение задачи после приостановки. Как и в случае со всеми другими сигналами, они прописываются в команде после дефиса. Например: 

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

Команда killall нужна для завершения всех процессов с заданным именем или группы процессов с частично совпадающими именами. 

Синтаксис killall похож на синтаксис команды kill, однако для ее использования необязательно знать PID. Вместо этого нужно ввести наименование процесса, например:

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

Таким же образом можно вводить сигналы для приостановки процесса и продолжения его выполнения после паузы.

Дополнительные инструменты для завершения процессов

Помимо рассмотренных выше команд kill и «killall, в операционной системе Linux есть и другие, которые могут быть пригодиться для завершения процессов.

Например, команда pkill может завершить все процессы, которые отвечают какому-либо указанному шаблону. Допустим, администратору нужно одновременно прекратить все задачи, так или иначе, связанные с использованием SSH. Для этого следует ввести в терминал команду следующего вида: 

А еще, если по каким-то причинам стандартные средства работы с операционной системой Linux вам не подходят или не нравятся, можно использовать визуальное средство завершения процессов. Для этого в ОС предусмотрена утилита htop. Чтобы активировать ее, введите в терминал команду htop, которая откроет визуальный интерфейс для управления процессами:

Чтобы переключаться между задачами в интерфейсе, используйте стрелки на клавиатуре, а чтобы закрыть его — кнопку F9.

Проверка завершения процесса

После завершения процесса с помощью любой из перечисленных выше команд важно убедиться в том, что он действительно остановлен. Для этого администраторам операционной системы Linux предлагается использовать команду ps, особенности работы которой мы уже рассмотрели ранее.

Введите команду формата: 

Так вы увидите список процессов, который активен в системе. Если в нем нет принудительно завершенной задачи, значит, она действительно больше не работает. Аналогично можно использовать команды top или htop.

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

Права и доступы при завершении процессов

Каждый процесс в Linux принадлежит пользователю с определенными правами и доступами — такое разделение полезно, если работу в одной системе нужно разграничить между разными юзерами. 

Закрытие любых процессов — это задача, которую можно выполнить только в статусе суперпользователя (root). Если же попытаться закрыть чужой процесс без использования прав суперпользователя, терминал вернет ошибку вида Operation not permitted. 

Коротко о командах kill и killall в Linux

В сообществе программистов Linux славится своей простотой и логичностью. И прямое подтверждение этому мнению — команды kill и killall. Они позволяют быстро и эффективно закрывать зависшие приложения, освобождая ресурсы для еще более удобной работы в системе. А для более прицельного управления используются в связке с такими утилитами, как ps, htop и pidof. 

Если вы тоже являетесь поклонником Linux или просто привыкли в ней работать, в облаке Cloud.ru для вас всегда доступны готовые образы загрузочных дисков операционных систем Ubuntu и Debian разных версий. С их помощью удастся легко развернуть виртуальную машину, чтобы ускорить создание сервера или тестовой среды.

Продукты из этой статьи:
Иконка-Evolution Image
Evolution Image
Иконка-Evolution Object Storage
Evolution Object Storage
Иконка-Evolution Compute
Evolution Compute
31 января 2025

Вам может понравиться