← Назад к вопросам
Как найти и завершить зависший Python-процесс одной командой?
2.0 Middle🔥 101 комментариев
#DevOps и инфраструктура
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Найти и завершить зависший Python-процесс одной командой
Есть несколько подходов, от простых до сложных.
1. Базовый способ — поиск по имени скрипта
ps aux | grep python
pkill -f my_script.py
pkill -9 -f my_script.py
2. По названию приложения/модуля
pkill -9 -f celery
pkill -9 -f "celery worker"
pkill -9 -f "uvicorn"
pkill -9 -f "flask run"
3. По PID
kill -15 1234
kill -9 1234
4. Поиск + Убийство одной командой
ps aux | grep my_script.py | grep -v grep | awk '{print $2}' | xargs kill -9
5. По CPU нагрузке
pid=$(ps aux --sort=-%cpu | grep python | head -1 | awk '{print $2}'); kill -9 $pid
6. По времени запуска
pid=$(ps aux --sort=+etime | grep python | head -1 | awk '{print $2}'); kill -9 $pid
7. По порту
kill -9 $(lsof -t -i :8000)
fuser -k 8000/tcp
8. Сигналы завершения
kill -15 1234 # SIGTERM мягко
kill -9 1234 # SIGKILL жёсткое
kill -2 1234 # SIGINT как Ctrl+C
9. Python для автоматического завершения
import psutil
def kill_hung_processes(script_name, cpu_threshold=90):
for proc in psutil.process_iter(['pid', 'name', 'cpu_percent']):
try:
if script_name in proc.cmdline():
cpu = proc.cpu_percent(interval=1)
if cpu > cpu_threshold:
proc.terminate()
except (psutil.NoSuchProcess, psutil.AccessDenied):
pass
10. Production подход
pkill -15 -f my_app
sleep 5
pkill -9 -f my_app
Сначала мягко (SIGTERM), потом жёсткое завершение (SIGKILL).