Главная > Управление процессами > killall

killall: Завершение процессов по имени

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

Обзор

killall — это мощный инструмент, позволяющий завершать несколько процессов одновременно по их именам, а не по идентификаторам процессов (PID). Поскольку он нацелен на все экземпляры с одинаковым именем, он особенно удобен при завершении всех окон или фоновых служб определенного приложения.

Основные возможности

  • Завершение по имени процесса
  • Поддержка отправки различных сигналов (по умолчанию SIGTERM)
  • Возможность фильтрации по пользователю, времени и другим условиям
  • Обработка нескольких экземпляров одновременно

Основные опции

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

Действия по умолчанию и сигналы

Фильтрация процессов

Сгенерированная команда:

Комбинируйте команды.

Описание:

`killall` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Различные примеры использования команды killall.

Завершение всех процессов с указанным именем

killall firefox

Завершает все экземпляры веб-браузера Firefox. Отправляется сигнал SIGTERM по умолчанию (запрос на нормальное завершение).

Принудительное завершение с указанным сигналом

killall -s SIGKILL chrome

Завершает все экземпляры веб-браузера Chrome с сигналом SIGKILL (принудительное завершение). Этот сигнал не дает процессу возможности выполнить очистку, поэтому использовать его следует с осторожностью.

Завершение в интерактивном режиме

killall -i sshd

Запрашивает подтверждение у пользователя перед завершением каждого экземпляра процесса sshd (демон SSH). Ввод 'y' приведет к завершению.

Завершение процессов определенного пользователя

killall -u user1

Завершает все процессы, запущенные пользователем 'user1'.

Ожидание завершения процесса

killall -w myapp

Команда будет ждать, пока процесс 'myapp', запущенный в данный момент, полностью не завершится.

Установка

Команда killall по умолчанию установлена в большинстве дистрибутивов Linux как часть пакета 'psmisc'. Если она не установлена в вашей системе, вы можете установить ее с помощью следующей команды.

Debian/Ubuntu

sudo apt update && sudo apt install psmisc

Устанавливает пакет psmisc с помощью менеджера пакетов APT.

CentOS/RHEL/Fedora

sudo yum install psmisc
# или
sudo dnf install psmisc

Устанавливает пакет psmisc с помощью менеджера пакетов YUM или DNF.

Советы и предостережения

Полезные советы и моменты, на которые следует обратить внимание при использовании команды killall.

Осторожность при использовании SIGKILL (-9)

SIGKILL (сигнал номер 9) принудительно и немедленно завершает процесс, не давая ему возможности очистить открытые файлы или данные. Это может привести к потере данных или нестабильности системы, поэтому следует сначала попробовать другие сигналы (например, SIGTERM), и только в крайнем случае использовать SIGKILL.

  • **Сначала используйте SIGTERM (по умолчанию)**: Большинство приложений корректно завершаются при получении SIGTERM.
  • **Используйте SIGKILL как крайнюю меру**: Используйте только тогда, когда процесс не отвечает.

Проверка точного имени процесса

killall использует точное имя процесса. Рекомендуется проверить точное имя процесса, который вы хотите завершить, с помощью команды `ps aux | grep <имя_процесса>`.

  • Пример: `ps aux | grep firefox`

Разница между killall и pkill

`killall` работает на основе точного совпадения имени процесса, в то время как `pkill` может использовать регулярные выражения для сопоставления имен процессов, что обеспечивает более гибкий поиск и завершение.

  • `killall`: Точное совпадение имени (например, `killall firefox`)
  • `pkill`: Совпадение по регулярному выражению (например, `pkill -f 'firef[o]x'`)
  • `pkill` расширяет функциональность команды `kill` без необходимости прямого указания PID.

Осторожность при завершении системных процессов

Завершение критически важных системных процессов с помощью `killall` может привести к нестабильности или сбою системы. Будьте особенно осторожны при выполнении команд с правами `root`.

  • Пример: Никогда не выполняйте `killall systemd`, `killall init` и т.п.

Те же команды в категории