В Linux есть три основные команды для завершения процессов:
kill— работает по PID (идентификатор процесса)killall— завершает процессы по имениpkill— тоже по имени, но с расширенными возможностями фильтрации
Кто может убивать процессы?
- Обычные пользователи могут убивать только свои процессы.
root— может убивать все процессы.
Сигналы для завершения процесса
Команды посылают сигнал процессу. Если сигнал не указан, по умолчанию отправляется TERM (номер 15) — мягкое завершение.
Основные сигналы:
1 (HUP)— перезагрузить процесс9 (KILL)— убить процесс насильно, без возможности отработать15 (TERM)— аккуратно завершить процесс
Сигналы можно указывать по-разному:
- Числом:
-9 - С префиксом SIG:
-SIGKILL - Без префикса SIG:
-KILL
Чтобы посмотреть все доступные сигналы, используй:
kill -l
Завершаем процесс с помощью kill
Сначала узнай PID процесса. Например, для браузера Google Chrome:
pidof google
Затем отправь сигнал (например, жесткий kill):
kill -9 2551 2514 1963 1856 1771
Здесь перечислены PID нескольких процессов.
Завершаем процессы по имени с помощью killall
killall -9 google
Это сразу убьёт все процессы с именем google.
Дополнительные возможности:
Завершить все процессы пользователя dev:
sudo killall -u dev
Узнать больше опций:
killall
Завершаем процессы с помощью pkill
pkill ищет процессы по шаблону и завершает их:
pkill -9 google
Можно сузить поиск, например, убить только процессы пользователя dev:
pkill -9 -u dev google
Итог
kill— когда знаешь PID и хочешь точечно убить процесс.killall— когда надо убить все процессы с определённым именем.pkill— гибче, позволяет фильтровать по имени, пользователю и другим критериям.
Если процесс упёрся рогом — смело пиши -9 (SIGKILL), но сначала попробуй мягкий -15.
0 комментариев