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

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

Команда ps
Команда ps возвращает статический снимок текущих процессов. Она полезна в тех случаях, если вы хотите получить всю информацию — в том числе PID — по всем процессам в системе. Для этого введите в терминал:
ps aux
В результате операционная система отобразит все процессы с подробной информацией по каждому, включая искомый идентификатор PID.
А еще с помощью команды ps можно вывести информацию о конкретном процессе, использовав его имя:
ps aux | grep <название_процесса>
Команда top
Чтобы отслеживать процессы в реальном времени, а не в статике, как при работе с командой ps, вы можете использовать команду top. Иными словами, для динамического мониторинга введите в терминал:
top
Так вы сможете увидеть таблицу, где процессы системы сортируются по убыванию нагрузки на центральный процессор. Чтобы обнаружить в этом списке конкретный процесс и определить его PID, нажмите / и введите его имя.
Команда pidof
Команда pidof позволяет идентифицировать PID нежелательного процесса в случае, если вы знаете о том, каким исполняемым файлом он был запущен. Для этого введите в терминал команду:
pidof <название_процесса>
В случае если процесс в данный момент активен, ОС отобразит вам его PID.
Как завершить процесс с помощью команды kill
Как только вы узнали уникальный идентификатор процесса (PID), можете сразу воспользоваться командой kill. В операционной системе Linux эта команда является стандартным инструментом для управления процессами.
В большинстве случаев синтаксис команды будет выглядеть так: kill [опция] PID. То есть сразу после kill следует:
указать номер сигнала — это числовое значение, которое определяет, какой именно сигнал будет отправлен процессу для управления его выполнением;
ввести уникальный идентификатор процесса (PID), который вы получили ранее.
В некоторых случаях завершить нежелательный процесс можно без указания дополнительных сигналов. Тогда для завершения процесса достаточно ввести команду:
kill PID
Однако, если завершить задачу с помощью kill PID не удалось, нужно использовать специальные сигналы:
SIGTERM (15). Сигнал, который используется по умолчанию и сообщает процессу о завершении. Большинство программ при получении SIGTERM без каких-либо заминок освобождают ресурсы, завершают операции и корректно закрываются с сохранением данных.
SIGKILL (9). Отправляет процессу команду на принудительное завершение. Используется, если задача игнорирует сигнал SIGTERM и продолжает выполняться.
Еще для завершения процессов в Linux могут использоваться такие сигналы, как SIGSTOP (19) и SIGCONT (18). Первый приостанавливает процесс без его завершения (делает паузу), а второй — возобновляет выполнение задачи после приостановки. Как и в случае со всеми другими сигналами, они прописываются в команде после дефиса. Например:
kill -19 PID
Как завершить процессы с помощью команды killall
Команда killall нужна для завершения всех процессов с заданным именем или группы процессов с частично совпадающими именами.
Синтаксис killall похож на синтаксис команды kill, однако для ее использования необязательно знать PID. Вместо этого нужно ввести наименование процесса, например:
killall [опции] <название_процесса>
Как и в случае с kill, команда для прекращения нескольких процессов поддерживает сигналы для передачи дополнительных указаний задачам. Например, чтобы принудительно закрыть несколько окон браузера Firefox, нужно ввести команду:
killall -9 firefox
Таким же образом можно вводить сигналы для приостановки процесса и продолжения его выполнения после паузы.
Дополнительные инструменты для завершения процессов
Помимо рассмотренных выше команд kill и «killall, в операционной системе Linux есть и другие, которые могут быть пригодиться для завершения процессов.
Например, команда pkill может завершить все процессы, которые отвечают какому-либо указанному шаблону. Допустим, администратору нужно одновременно прекратить все задачи, так или иначе, связанные с использованием SSH. Для этого следует ввести в терминал команду следующего вида:
pkill ssh
А еще, если по каким-то причинам стандартные средства работы с операционной системой Linux вам не подходят или не нравятся, можно использовать визуальное средство завершения процессов. Для этого в ОС предусмотрена утилита htop. Чтобы активировать ее, введите в терминал команду htop, которая откроет визуальный интерфейс для управления процессами:
htop
Чтобы переключаться между задачами в интерфейсе, используйте стрелки на клавиатуре, а чтобы закрыть его — кнопку F9.
Проверка завершения процесса
После завершения процесса с помощью любой из перечисленных выше команд важно убедиться в том, что он действительно остановлен. Для этого администраторам операционной системы Linux предлагается использовать команду ps, особенности работы которой мы уже рассмотрели ранее.
Введите команду формата:
ps aux | grep <название_процесса>
Так вы увидите список процессов, который активен в системе. Если в нем нет принудительно завершенной задачи, значит, она действительно больше не работает. Аналогично можно использовать команды top или htop.
Важно также отметить, что иногда процесс не удается завершить из-за отсутствия у пользователя прав администратора. Чтобы проверить их наличие, нужно добавить sudo перед командой для завершения процесса:
sudo kill PID
Права и доступы при завершении процессов
Каждый процесс в Linux принадлежит пользователю с определенными правами и доступами — такое разделение полезно, если работу в одной системе нужно разграничить между разными юзерами.
Закрытие любых процессов — это задача, которую можно выполнить только в статусе суперпользователя (root). Если же попытаться закрыть чужой процесс без использования прав суперпользователя, терминал вернет ошибку вида Operation not permitted.
Коротко о командах kill и killall в Linux
В сообществе программистов Linux славится своей простотой и логичностью. И прямое подтверждение этому мнению — команды kill и killall. Они позволяют быстро и эффективно закрывать зависшие приложения, освобождая ресурсы для еще более удобной работы в системе. А для более прицельного управления используются в связке с такими утилитами, как ps, htop и pidof.
Если вы тоже являетесь поклонником Linux или просто привыкли в ней работать, в облаке Cloud.ru для вас всегда доступны готовые образы загрузочных дисков операционных систем Ubuntu и Debian разных версий. С их помощью удастся легко развернуть виртуальную машину, чтобы ускорить создание сервера или тестовой среды.
Вам может понравиться


Что может chmod: как управлять доступами к файлам и папкам в Linux

Как узнать IP-адрес в Linux через командную строку

Как узнать IP-адрес своего компьютера

Система MySQL: что это и для чего нужна

Работа с файлами в Linux: их создание и организация через терминал

Стандарт Tier III для дата-центра: что значит и почему это круто

Какие новости за декабрь и начало января — дайджест Cloud.ru

Что такое FTP-протокол и как настроить FTP сервер

Белые и серые IP, динамические и статические - в чем различие

Как защищать сайты и приложения в облаке от DDoS-атак

Какие новости за ноябрь — дайджест Cloud.ru

BAT-файлы: что это такое, зачем они нужны и как их создавать

Гайд по протоколу HTTP: расшифровка, структура и механизм работы

Межсетевой экран, firewall и брандмауэр: что это, в чем между ними разница и зачем они нужны

Kubernetes на Cloud.ru Evolution: возможности и преимущества

Какие новости за октябрь — дайджест Cloud.ru

Как создать сетевую архитектуру для размещения межсетевых экранов на платформе Облако VMware

Рассказать про технологии лампово, или Как мы провели конференцию GoCloud Tech для инженеров и...

Какие новости за сентябрь — дайджест Cloud.ru

Высокоресурсные вычисления: роль суперкомпьютеров в жизни и бизнесе

Реферальная программа Cloud.ru: как устроена и как на ней зарабатывать

Сетевая модель OSI: что это такое и зачем она нужна

Какие новости за август — дайджест Cloud.ru

Сетевые протоколы передачи данных — что это такое и какие бывают

Какие новости за июль — дайджест Cloud.ru

Как новые возможности в юридических документах Cloud.ru облегчают работу с договорами и не только

Какие новости за июнь — дайджест Cloud.ru

Как обновления VMware Cloud Director облегчают управление и делают работу с инфраструктурой в ...

Как мы рассчитывали «Панораму российского IT-рынка» за 2022 год

Как снизить риски утечки данных и санкций госрегуляторов: 152-ФЗ в Cloud.ru

Бесплатный курс по работе с Cloud.ru Advanced: рассказываем, в чем польза, кому подойдет и как...

Как модель Anything as a Service упрощает IT-процессы

Снижение рисков на производстве: AI-сервис распознает нарушения ношения СИЗ

Kandinsky 2.1: новый уровень в генерации изображений по текстовому описанию

Облачные сервисы для стартапов: как пройти путь от идеи до цифрового продукта и не разориться

Создать пользователя, настроить 2FA, связаться с поддержкой — новые возможности личного кабине...

VDI: что это, как работает и в чем выгода для бизнеса

Как защитить облачную инфраструктуру — рассказываем на примере межсетевого экрана нового покол...

Как начать использовать AI/ML на практике

Бессерверные вычисления: что это за технология и кому она нужна

Чек-лист: как обеспечить безопасность облачной инфраструктуры

Искусственный интеллект

Что такое IaaS?

Что такое PaaS

Machine Learning

Data Science

Машинное обучение без учителя

Классическое машинное обучение

Нейронные сети

Глубокое обучение

Защита персональных данных: как легче соблюдать закон с Cloud.ru и сохранять спокойствие

Как сохранить IT-инфраструктуру и бизнес: руководство к действию

Машинное обучение и Big Data в кибербезопасности

Ответы на актуальные вопросы

Что такое DDoS-атаки, чем они опасны и как от них защититься

Аудит информационной безопасности: что это, зачем и когда его проводить

Межсетевые экраны: UTM, NGFW-системы, NTA, NDR

Обзор межсетевых экранов, систем IPS и IDS

PostgreSQL vs MySQL: какая система подходит вашему бизнесу

Основы резервного копирования

Специальное предложение «180 дней тестового периода резервного копирования» для всех клиентов
Платформа SberCloud Advanced теперь обеспечивает максимальный уровень защиты персональных данных

Что такое объектное хранилище S3 и как его используют

Customer Enablement: как SberCloud работает с клиентами, чтобы сделать миграцию в облако комфо...

Сеть доставки контента CDN: новые функциональные возможности и преимущества

Объясняем на кейсах: польза CDN для бизнеса

Новая Windows Server 2022 в облаке SberCloud — новые возможности клиентов

Запуск нового сервиса Managed OpenShift в облачной среде SberCloud

Как работает технология DNS

SberCloud Advanced запустила третью ресурсную зону доступности для комфортной работы клиентов

PostGIS в PostgreSQL — как можно использовать

GitLab для начинающих: как и для чего используется

Краткий обзор методологии CI/CD: принципы, этапы, плюсы и минусы

Персональные данные: правильно обрабатываем и храним

Кто и зачем использует облачные модели IaaS и PaaS

152-ФЗ в облаке: хранение персональных данных в облаке

Как работает CDN (Content Delivery Network)?

Service Level Agreement (SLA): все о соглашении об уровне сервиса

Что такое «интернет поведения» (IoB)?

Чек-лист: 6 шагов для успешной миграции в облако

Машинное обучение: просто о сложном

Профессия DevOps-инженер: кто это и чем занимается

Гайд по Kubernetes. Эпизод I: k8s для неразработчиков

Публичные, частные и гибридные облака: в чем разница?
