Processos Linux
Entendendo processos Linux, gerenciamento de processos e monitoramento do sistema.
Processos Linux
Um processo é uma instância em execução de um programa no Linux. Este guia explica como os processos funcionam, como gerenciá-los e como monitorar recursos do sistema.
Conceitos Básicos de Processos
O que é um Processo?
Um processo é:
- Uma instância em execução de um programa
- Possui seu próprio espaço de memória
- Tem um ID de Processo (PID) único
- Pode criar processos filhos
Estados dos Processos
Os processos podem estar em diferentes estados:
- Em Execução: Atualmente executando
- Em Espera: Aguardando um evento ou recurso
- Parado: Suspenso por um sinal
- Zumbi: Terminado mas não limpo
- Morto: Terminado e limpo
Gerenciamento de Processos
Comandos de Processos
ps # Lista processos
top # Exibe processos do sistema
htop # Visualizador interativo de processos
kill # Envia sinais para processos
nice # Executa com prioridade modificada
renice # Altera prioridade do processo
Informações de Processos
Informações principais de processos:
- PID (ID do Processo)
- PPID (ID do Processo Pai)
- UID (ID do Usuário)
- GID (ID do Grupo)
- Uso de CPU
- Uso de memória
- Hora de início
- Linha de comando
Controle de Processos
Sinais
Sinais comuns:
- SIGTERM (15): Terminação graciosa
- SIGKILL (9): Terminação forçada
- SIGSTOP (19): Para processo
- SIGCONT (18): Continua processo
- SIGHUP (1): Desconexão
Prioridade de Processos
O Linux usa um sistema de prioridade:
- Valores nice: -20 a +19
- Menor valor nice = maior prioridade
- Valor nice padrão: 0
Monitoramento do Sistema
Monitoramento de Recursos
top # Monitoramento em tempo real do sistema
vmstat # Estatísticas de memória virtual
iostat # Estatísticas de I/O
sar # Relatório de atividade do sistema
Monitoramento de Processos
ps aux # Informações detalhadas de processos
lsof # Lista arquivos abertos
strace # Rastreia chamadas do sistema
Criação de Processos
Fork e Exec
-
Fork
- Cria uma cópia do processo atual
- Processo filho recebe novo PID
- Processo pai continua
-
Exec
- Substitui processo atual por novo programa
- PID permanece o mesmo
- Espaço de memória é substituído
Processos Daemon
Características:
- Executam em segundo plano
- Sem terminal de controle
- Processo pai é init (PID 1)
- Gerenciam serviços do sistema
Comunicação entre Processos
Métodos de IPC
-
Tubos
- Tubos nomeados (FIFOs)
- Tubos anônimos
-
Memória Compartilhada
- Método IPC mais rápido
- Requer sincronização
-
Filas de Mensagens
- Mensagens estruturadas
- Sistema-wide
-
Semáforos
- Primitivas de sincronização
- Controlam acesso a recursos
Melhores Práticas
-
Gerenciamento de Processos
- Use sinais apropriados
- Limpe processos zumbis
- Monitore uso de recursos
-
Monitoramento do Sistema
- Verificações regulares de performance
- Acompanhamento de uso de recursos
- Monitoramento de saúde dos processos
-
Segurança
- Execute processos com privilégios mínimos
- Monitore processos suspeitos
- Auditorias regulares de segurança
Próximos Passos
Continue aprendendo sobre:
- Gerenciamento avançado de processos
- Ajuste do sistema
- Otimização de performance
- Depuração de processos
- Gerenciamento de containers