yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

Команды 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

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