Controle de Processos
Comandos Básicos
🔍 Visualização de Processos
# Listar processos
ps aux # Lista detalhada
ps -ef # Formato alternativo
ps -u $USER # Processos do usuário
top # Monitor em tempo real
htop # Versão melhorada do top
🎮 Controle de Processos
# Sinais básicos
kill PID # Encerra processo (SIGTERM)
kill -9 PID # Força encerramento (SIGKILL)
killall processo # Encerra por nome
pkill processo # Variação do killall
# Controle de jobs
ctrl+z # Suspende processo
bg # Executa em background
fg # Traz para foreground
jobs # Lista jobs ativos
Monitoramento Avançado
📊 Recursos do Sistema
# Memória e CPU
free -h # Uso de memória
vmstat 1 # Estatísticas de VM
mpstat 1 # Estatísticas CPU
iostat # E/S e CPU
# Monitoramento em tempo real
watch -n 1 'ps aux --sort=-%cpu | head' # Top processos CPU
watch -n 1 'ps aux --sort=-%mem | head' # Top processos memória
⚡ Prioridade e Recursos
# Ajuste de prioridade
nice -n 10 comando # Inicia com prioridade menor
renice -n 10 -p PID # Ajusta prioridade
renice -n 10 -u usuario # Ajusta para usuário
# Limites de recursos
ulimit -n 2048 # Limite de arquivos
ulimit -u 100 # Limite de processos
ulimit -a # Mostra todos limites
Scripts de Automação
🤖 Monitor de Processos
#!/bin/bash
# process_monitor.sh
monitor_process() {
local processo="$1"
local max_cpu="$2"
local max_mem="$3"
while true; do
# Obtém uso de CPU e memória
cpu=$(ps -p $(pgrep "$processo") -o %cpu= 2>/dev/null)
mem=$(ps -p $(pgrep "$processo") -o %mem= 2>/dev/null)
# Verifica limites
if (( $(echo "$cpu > $max_cpu" | bc -l) )); then
echo "ALERTA: $processo usando muita CPU ($cpu%)"
fi
if (( $(echo "$mem > $max_mem" | bc -l) )); then
echo "ALERTA: $processo usando muita memória ($mem%)"
fi
sleep 60
done
}
🔄 Reinício Automático
#!/bin/bash
# auto_restart.sh
watch_and_restart() {
local processo="$1"
local max_restarts=3
local count=0
while true; do
if ! pgrep -x "$processo" > /dev/null; then
if [ $count -lt $max_restarts ]; then
echo "Reiniciando $processo..."
systemctl restart "$processo"
((count++))
else
echo "Limite de reinícios atingido para $processo"
break
fi
fi
sleep 30
done
}
Técnicas Avançadas
🔍 Diagnóstico
# Análise de processos
strace -p PID # Trace de syscalls
lsof -p PID # Arquivos abertos
pmap PID # Mapa de memória
# Análise de performance
perf top # Análise CPU
perf record # Grava dados
perf report # Analisa dados
🔒 Isolamento
# Controle de recursos com cgroups
cgcreate -g cpu,memory:grupo1
cgset -r cpu.shares=512 grupo1
cgexec -g cpu,memory:grupo1 comando
Troubleshooting
🔧 Problemas Comuns
Processo Zumbi: Use
ps aux | grep ZAlto Consumo: Identifique com
topouhtopTravamento: Verifique logs com
dmesgMemória: Analise com
freeevmstat
14 abril 2025