Обзор
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` и т.п.