Lab 4.1 - Visualização de Processos
Objetivos
Ao final deste lab, você será capaz de:
- Visualizar processos com ps, top, htop
- Entender as informações exibidas
- Filtrar e ordenar processos
- Monitorar processos em tempo real
Pré-requisitos
- Ubuntu 24.04 instalado
- Terminal aberto
- htop instalado (opcional, mas recomendado)
Exercício 1: ps (Status do Processo)
Etapa 1: Comandos Básicos
# Ver todos os processos
ps aux
# Ver os processos do usuário atual
ps
# Com mais detalhes
ps auxf # Árvore de processos
# Ver um processo específico
ps aux | grep firefox
Etapa 2: Opções Úteis
# Formato personalizado
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10
# Processos por usuário
ps -u $USER
# Processos por PID
ps -p 1
# Processos em árvore
pstree
pstree -p # Com PID
Etapa 3: Análise
# Top 10 por CPU
ps aux --sort=-%cpu | head -11
# Top 10 por memória
ps aux --sort=-%mem | head -11
# Contar processos
ps aux | wc -l
# Por usuário
ps aux | awk '{print $1}' | sort | uniq -c | sort -rn
Exercício 2: top
Etapa 1: Uso Básico
# Iniciar top
top
# Comandos no top:
# - 'q': Sair
# - 'k': Matar um processo (inserir PID)
# - 'r': Renice em um processo
# - 'M': Ordenar por memória
# - 'P': Ordenar por CPU
# - 'f': Alterar colunas exibidas
# - '1': Ver todos os CPUs
Etapa 2: Modo Batch
# Executar top em modo batch (uma vez)
top -bn1 | head -20
# Salvar em um arquivo
top -bn1 > top-output.txt
# Ver os principais processos
top -bn1 | grep -A 20 "PID USER"
Exercício 3: htop (Aprimorado)
Etapa 1: Instalação
# Instalar htop
sudo apt update
sudo apt install htop
# Iniciar
htop
Etapa 2: Funcionalidades do htop
# htop oferece:
# - Interface colorida e intuitiva
# - Navegação com setas
# - Filtro em tempo real (F4)
# - Busca (F3)
# - Matar processo (F9)
# - Renice (F7/F8)
# - Árvore de processos (F5)
Etapa 3: Configuração
# No htop:
# - F2: Setup (configuração)
# - F10: Sair
Exercício 4: Informações Detalhadas
Etapa 1: /proc
# Informações sobre um processo (substitua PID)
PID=$(pgrep -f firefox | head -1)
echo "PID: $PID"
# Status
cat /proc/$PID/status
# Arquivos abertos
ls -l /proc/$PID/fd/
# Diretório de trabalho
readlink /proc/$PID/cwd
# Executável
readlink /proc/$PID/exe
Etapa 2: lsof (se instalado)
# Instalar
sudo apt install lsof
# Arquivos abertos por um processo
sudo lsof -p $PID
# Processos usando um arquivo
sudo lsof /var/log/syslog
# Conexões de rede
sudo lsof -i
Exercício 5: Monitoramento em Tempo Real
Etapa 1: watch
# Monitorar processos
watch -n 1 'ps aux --sort=-%cpu | head -10'
# Monitorar um processo específico
watch -n 1 'ps -p $PID -o pid,%cpu,%mem,cmd'
Etapa 2: Script de Monitoramento
# Criar um script
cat > ~/monitor-processes.sh << 'EOF'
#!/bin/bash
while true; do
clear
echo "=== $(date) ==="
echo
echo "Top 5 CPU:"
ps aux --sort=-%cpu | head -6
echo
echo "Top 5 Memória:"
ps aux --sort=-%mem | head -6
echo
echo "Total de processos: $(ps aux | wc -l)"
sleep 2
done
EOF
chmod +x ~/monitor-processes.sh
# Iniciar: ./monitor-processes.sh
Exercício 6: Filtragem Avançada
Etapa 1: Por Nome
# Encontrar todos os processos contendo "python"
ps aux | grep python
# Excluir o próprio processo grep
ps aux | grep python | grep -v grep
# Com pgrep
pgrep -a python
Etapa 2: Por Usuário
# Processos de um usuário
ps -u root
# Todos exceto root
ps aux | grep -v "^root"
Etapa 3: Por Estado
# Processos em execução
ps aux | grep " R "
# Processos em espera
ps aux | grep " S "
# Processos zumbi
ps aux | grep " Z "
Verificação
Checklist
Verifique se você consegue:
- Usar ps para ver os processos
- Usar top para monitoramento em tempo real
- Usar htop (interface aprimorada)
- Filtrar e ordenar processos
- Ver informações detalhadas (/proc)
- Monitorar em tempo real
Perguntas para Reflexão
-
Qual a diferença entre ps e top?
- ps: instantâneo
- top: tempo real, interativo
-
O que significam os estados dos processos (R, S, Z)?
- R: Running (em execução)
- S: Sleeping (em espera)
- Z: Zombie (finalizado, mas não limpo)
-
Por que o htop é preferido ao top?
- Interface mais intuitiva
- Navegação mais fácil
- Mais informações visuais
Próximos Passos
- Lab 4.2: Controle de Processos
- Lab 4.3: Prioridades e Valores Nice
- Capítulo 4.2: Visualização de Processos
Lab criado em: Dezembro 2024 - Testado no Ubuntu 24.04