LinuxComeçandoProcessos

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:

  1. Em Execução: Atualmente executando
  2. Em Espera: Aguardando um evento ou recurso
  3. Parado: Suspenso por um sinal
  4. Zumbi: Terminado mas não limpo
  5. 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

  1. Fork

    • Cria uma cópia do processo atual
    • Processo filho recebe novo PID
    • Processo pai continua
  2. 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

  1. Tubos

    • Tubos nomeados (FIFOs)
    • Tubos anônimos
  2. Memória Compartilhada

    • Método IPC mais rápido
    • Requer sincronização
  3. Filas de Mensagens

    • Mensagens estruturadas
    • Sistema-wide
  4. Semáforos

    • Primitivas de sincronização
    • Controlam acesso a recursos

Melhores Práticas

  1. Gerenciamento de Processos

    • Use sinais apropriados
    • Limpe processos zumbis
    • Monitore uso de recursos
  2. Monitoramento do Sistema

    • Verificações regulares de performance
    • Acompanhamento de uso de recursos
    • Monitoramento de saúde dos processos
  3. 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