ps, kill, killallИногда в Linux-системе приложения могут зависнуть, начать потреблять слишком много ресурсов или просто перестать реагировать. В таких случаях нужно уметь находить и завершать проблемные процессы — быстро, безопасно и эффективно.
В этой статье мы разберём, как находить зависшие процессы и завершать их с помощью стандартных команд: ps, kill, killall, а также затронем top и htop для наглядности.
ps для поиска процессов
ps aux
Выводит список всех процессов в системе. Полезные столбцы:
USER — от кого запущен процессPID — идентификатор процесса%CPU, %MEM — использование ресурсовCOMMAND — команда, запустившая процесс
Например: ищем все процессы, связанные с nginx
ps aux | grep nginx
? Чтобы избежать попадания самой команды grep в результат, используйте:
ps aux | grep [n]ginx
htop для диагностикиМы рассматривали работу htop в статье Мониторинг ресурсов сервера.
htop
Можно использовать стрелки, нажимать F9 для убийства процесса, и выбирать сигнал (например, SIGKILL).
kill по PIDЕсли вы знаете PID процесса (можно узнать через ps, top, htop):
kill PID
Пример:
kill 1234
Это отправляет сигнал SIGTERM (15) — вежливый способ попросить процесс завершиться.
? Если не сработало:
kill -9 1234
-9 = SIGKILL — жесткое завершение, которое нельзя перехватить. Используйте только при крайней необходимости!
killall — завершение процессов по имени
killall firefox
Завершает все процессы, имя которых совпадает с firefox.
Пример: завершение всех процессов nginx с помощью killall
Можно использовать и сигналы:
killall -9 node
? Осторожно: killall завершит все совпадающие процессы, включая фоновые. Убедитесь, что вы не закроете важный сервис.
pkill — ещё один способ по имени
pkill nginx
Очень похож на killall, но может быть более гибким — поддерживает регулярные выражения, фильтрацию по пользователю и т.д.
pkill -u www-data php
Завершит все процессы php, запущенные от пользователя www-data.
Признаки зависшего процесса:
top, htop)systemctl/var/log/syslog, /var/log/nginx/error.log и т.п.| Задача | Команда |
|---|---|
| Найти процесс по имени | ps aux |
| Завершить процесс по PID | kill PID |
| Жёстко завершить процесс | kill ‑9 PID |
| Завершить все процессы по имени | killall имя |
| Убить процесс по имени (вариант) | pkill имя |
| Посмотреть процессы по памяти | ps aux --sort=-%mem |
Зависшие процессы — частая проблема на Linux-серверах, особенно при работе с веб-приложениями, скриптами или фоновыми задачами. Умение их находить и безопасно завершать — базовый навык системного администратора и разработчика.
Используйте ps, kill, killall, top и htop в связке, чтобы быстро реагировать на сбои и поддерживать стабильную работу вашего VDS.