Обзор kill
`kill` команда отправляет сигнал процессу с определенным идентификатором процесса (PID). Наиболее распространенным сигналом является сигнал завершения процесса, но в зависимости от типа сигнала процесс может реагировать по-разному. Например, процесс может быть приостановлен или ему может быть предложено перезагрузить файл конфигурации.
Важность идентификатора процесса (PID)
`kill` команда по умолчанию принимает PID в качестве аргумента. Поэтому важно точно знать, какой процесс вы хотите контролировать. Вы можете использовать команды `ps` или `top`, чтобы узнать PID процесса.
Основные функции kill
- Завершение процесса: Принудительное или нормальное завершение ненужного или неисправного процесса.
- Перезапуск/перезагрузка процесса: Отправка определенного сигнала, чтобы процесс снова прочитал файл конфигурации или перезапустился.
- Управление системными ресурсами: Завершение процесса, который потребляет слишком много ресурсов, чтобы обеспечить стабильность системы.
Наиболее часто используемые сигналы
Существует множество сигналов, но два из них используются чаще всего:
Основные сигналы
- **SIGTERM (15, по умолчанию)**: Отправляет процессу мягкий запрос 'Завершите'. Процесс, получив этот сигнал, может выполнить завершающие действия и завершиться. В большинстве случаев сначала пытаются использовать этот сигнал.
- **SIGKILL (9)**: Немедленно принудительно завершает процесс. Процесс не может игнорировать или перехватить этот сигнал и будет завершен без возможности выполнения завершающих действий. Используйте как последнее средство.
Основные параметры команды kill
`kill` команда управляет процессами с использованием номера сигнала или имени сигнала. При отправке сигнала определенному процессу важно точно указать его PID.
1. Основное использование
2. Полезные сигналы
3. Просмотр списка всех сигналов
Сгенерированная команда:
Комбинируйте команды.
Описание:
`kill` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Команда killall (Завершение по имени процесса)
`killall` команда, в отличие от `kill`, использует имя процесса вместо PID и отправляет сигнал всем процессам, соответствующим этому имени. Это очень удобно для завершения всех экземпляров определенного приложения.
Нормальное завершение по имени процесса
killall nginx
Отправляет сигнал SIGTERM всем процессам с именем `nginx`, запрашивая нормальное завершение.
Принудительное завершение по имени процесса
killall -9 firefox
Отправляет сигнал SIGKILL всем процессам с именем `firefox`, немедленно принудительно завершая их.
Завершение только процессов конкретного пользователя
killall -u $(whoami) chrome
Завершает только процессы `chrome`, запущенные текущим пользователем. Не затрагивает процессы `chrome` других пользователей.
Команда pkill (Завершение по шаблону)
`pkill` команда, аналогичная `killall`, завершает процессы по имени, но более гибкая, так как использует регулярные выражения для поиска процессов. Это полезно для поиска процессов по частичному имени или для одновременного завершения нескольких связанных процессов.
Нормальное завершение по шаблону
pkill http
Отправляет сигнал SIGTERM всем процессам, имя которых содержит 'http'. (Например: `httpd`, `apache2` и т.д.)
Принудительное завершение по шаблону
pkill -9 mysql
Отправляет сигнал SIGKILL всем процессам, имя которых содержит 'mysql', принудительно завершая их.
Завершение процессов, принадлежащих конкретному пользователю
pkill -u www-data php-fpm
Завершает все процессы 'php-fpm', принадлежащие пользователю `www-data`.
Примеры использования
Изучите различные примеры использования команд `kill`, `killall`, `pkill`, чтобы эффективно управлять процессами на системе.
Завершение процесса с конкретным идентификатором (PID)
kill 12345
Отправляет сигнал SIGTERM процессу с PID `12345`, пытается завершить его нормально.
Принудительное завершение процесса (используя PID)
kill -9 54321
Принудительно завершает процесс с PID `54321`, если он не отвечает.
Перезагрузка процесса Nginx (используя SIGHUP)
sudo kill -1 $(cat /run/nginx.pid)
Находит мастер-процесс Nginx (PID) и отправляет сигнал `SIGHUP`, чтобы заставить его снова прочитать файл конфигурации. (PID процесса Nginx можно проверить с помощью `ps aux | grep nginx` и т.д.)
Завершение всех браузеров Chrome по имени
killall chrome
Нормально завершает все процессы браузера Chrome, которые выполняются. (Закрытые окна могут привести к потере несохраненного содержимого.)
Завершение всех процессов пользователя 'johndoe'
sudo killall -9 -u johndoe
Принудительно завершает все процессы, запущенные пользователем `johndoe`. (Требуются права администратора.)
Завершение процессов, потребляющих много ЦП (пример)
# 1. Проверьте PID с помощью top или htop (например: 12345)
# 2. Завершите этот PID
kill 12345
Обычный сценарий: проверьте PID процессов, потребляющих много ЦП, с помощью `top` или `htop`, а затем завершите их.