Processo de Inicialização: Init
100%

Inicializar o Sistema · Lição 5

Processo de Inicialização: Init

Aprenda como o PID 1 inicializa o espaço do usuário, supervisiona serviços, recolhe processos-filhos e coordena o desligamento.

O kernel inicia o primeiro processo do espaço do usuário como PID 1 em um namespace de PIDs. Em um sistema Linux completo, esse processo init estabelece o ambiente de serviços. Em um container, o PID 1 pode ser um pequeno wrapper de init ou o próprio aplicativo, mas ainda tem responsabilidades especiais sobre sinais e processos-filhos.

Responsabilidades do PID 1

Um sistema init geralmente:

  • inicia e supervisiona serviços, logins, montagens e outras unidades de trabalho
  • ordena o trabalho conforme dependências e o estado de destino configurado
  • adota e recolhe processos-filhos órfãos
  • reage a falhas de serviços conforme a política
  • coordena desligamentos e reinicializações ordenados

O limite exato varia. Gerenciamento de dispositivos, rede, logs e tarefas agendadas podem ser programas separados supervisionados pelo init, não código incorporado ao PID 1.

Qual responsabilidade é especial para o PID 1 em seu namespace?

System V init e runlevels

O sysvinit tradicional usa configurações como /etc/inittab e scripts de inicialização e desligamento específicos de cada runlevel. Um runlevel representa um modo de operação, mas o significado dos níveis numerados pode variar entre distribuições. A ordem dos scripts segue convenções e pode ser ampliada ou paralelizada pelas ferramentas da distribuição.

Não deduza o init ativo apenas porque /etc/init.d/ existe; scripts de compatibilidade podem permanecer em sistemas cujo PID 1 usa outra implementação.

O que representa um runlevel do System V?

Sistemas baseados em eventos e dependências

O Upstart introduziu um modelo de jobs orientado a eventos e foi usado em versões antigas do Ubuntu e em outros sistemas. Hoje, ele tem interesse principalmente histórico ou para operação de sistemas legados.

O systemd é amplamente usado por distribuições atuais de uso geral. Ele modela serviços, sockets, montagens, temporizadores, dispositivos, targets e outros recursos como units. Dependências declarativas e mecanismos de ativação permitem que trabalhos independentes avancem em paralelo sem perder a ordem necessária.

Outros projetos ativos incluem OpenRC, runit, s6 e BusyBox init. “Mais recente” não é uma regra útil de compatibilidade; identifique o sistema realmente em execução e consulte sua documentação.

Como o systemd representa recursos gerenciados, como serviços e montagens?

Identificação do init em execução

Examine o PID 1 em vez de adivinhar pelos arquivos instalados:

$ ps -p 1 -o pid,comm,args=
$ readlink /proc/1/exe

Permissões, containers e namespaces afetam o que você vê. Um comando dentro de um container informa o PID 1 daquele namespace, não necessariamente o init do host. Depois de identificá-lo, use suas ferramentas nativas de estado e logs.

Por que examinar o PID 1 é melhor que verificar se existe um diretório de scripts legados?

Lição concluída

Você concluiu Processo de Inicialização: Init

Agora você consegue explicar init como um papel, não como uma implementação obrigatória.

  • Relacionar o PID 1 à inicialização de serviços, coleta de filhos e desligamento.

  • Reconhecer runlevels do System V como modos definidos pela distribuição.

  • Relacionar recursos e dependências do systemd a units.

  • Examinar o PID 1 ativo no namespace relevante antes de escolher ferramentas.

Salve seu progresso

Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.

Criar uma conta gratuita
Voltar para Inicializar o Sistema