Gerenciamento de Processos e Recursos
ps, htop, sinais, nohup e limites de recursos no Linux - gerencie workers web Python, processos Celery e scripts de longa execução sem zumbis órfãos ou OOM kills.
Busque em todas as páginas da documentação
ps, htop, sinais, nohup e limites de recursos no Linux - gerencie workers web Python, processos Celery e scripts de longa execução sem zumbis órfãos ou OOM kills.
pgrep -af "uvicorn|celery|gunicorn"
kill -TERM <pid>
sleep 5
kill -KILL <pid> # apenas se ainda estiver em execução
htop -p <pid>Quando usar isso:
# Encontra o mestre e os workers do billing-api
pgrep -af gunicorn
# Recarregamento gracioso (se USR2/HUP configurado) ou TERM
sudo kill -TERM "$(pgrep -f 'gunicorn.*billing-api' | head -1)"
sleep 10
sudo ss -tlnp | grep 8000
# Verifica arquivos abertos para vazamento de conexão
PID=$(pgrep -f 'uvicorn app.main:app' | head -1)
ls -l /proc/$PID/fd | wc -l
cat /proc/$PID/limits | grep "open files"O que isso demonstra:
pgrep -af mostra a linha de comando completa para processos Python/proc para vazamentos de fd| Sinal | Efeito no serviço Python |
|---|---|
| SIGTERM | Uvicorn/Gunicorn para de aceitar; drena requisições |
| SIGINT | Igual a Ctrl+C em desenvolvimento em primeiro plano |
| SIGHUP | Recarrega a configuração em alguns daemons |
| SIGKILL | Morte imediata - sem blocos finally |
# app registra um manipulador SIGTERM para limpeza
import signal
def handle_term(signum, frame):
close_db_pool()
signal.signal(signal.SIGTERM, handle_term)ps -fp.dmesg -T | rg -i oom.LimitNOFILE no systemd.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| systemd restart | Serviços de produção | Experimento local rápido |
| Docker stop | Período de graça do contêiner | VM bare metal |
| Kubernetes delete pod | Roll orquestrado | Solução de problemas SSH |
| py-spy | Amostragem de Python travado | Reinicialização simples é suficiente |
Corresponde ao tempo limite de drenagem do balanceador de carga upstream - frequentemente 10-30s para APIs.
Um processo por CPU com --workers N sob gunicorn; cada um aparece em pgrep.
celery control shutdown ou TERM worker; permita que as tarefas acks_late terminem.
nice -n 10 uv run python batch.py reduz a contenção de CPU com a API na mesma VM.
systemd-run -p MemoryMax=2G ... limita o worker descontrolado em um host compartilhado.
Último recurso de desempenho/depuração - sobrecarga enorme; tente py-spy primeiro.
ss para portas de escuta; lsof -p para arquivos/sockets abertos por PID.
Alta carga com CPU baixa pode ser espera de IO - verifique iostat.
Identifique o pai com ps -o ppid= -p ZPID; reinicie o processo pai.
A coluna available em free -h é mais importante do que a leitura de cache free.
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026