Inicialização do Linux — init, runlevels, init.d, inittab, telinit

Ricardo Reis
3 min readApr 19, 2020

--

Quando você inicia o Linux diversos scripts presentes dentro do diretório “/etc” são usados para configurar o sistema. Esses scripts também são usados para mudar de um nível de execução.

Os processos podem variar um pouco entre as distribuições Linux.

Processos

Um processo é basicamente um programa em execução.

Processo init

O processo init é o primeiro processo que roda no sistema. Ele é considerado o pai de todos os processos. Basicamente ele é um processo na memória que cria todos os demais processos.

O processo init é criado a partir de um script que fica armazenado em “/etc/inittab”.

***ATUALIZAÇÃO: O inittab não é mais usado nas distribuições Linux Debian. Agora são usados os arquivos que estão em “/etc/init” ***

/etc/inittab FOI SUBSTITUÍDO PELOS ARQUIVOS DO DIRETÓRIO /etc/init/

PID

Todo processo no Linux possui um PID (Process Identifier) que é um número de identificação.

O PID do init é 1, pois ele é o primeiro a ser criado no sistema.

Runlevels — Níveis de Execução

O conceito de Níveis de execução especifica as diferentes formas pelas quais um sistema pode ser utilizado e o controle sobre quais serviços rodarão.

Existem 6 níveis de execução no Linux e eles são especificados pelos números inteiros de 0 a 6.

O processo init é responsável por levar o sistema ao nível de execução padrão.

NÍVEIS DE EXECUÇÃO (RUNLEVELS)0 - Sistema desligado.
1, S, s - Modo Monousuário (usado para manutenção do sistema)
2 - Multiusuário; Padrão no Debian.
3 - Multiusuário; Padrão no Red Hat, sem GUI.
4 - Não usado.
5 - Multiusuário completo com login gráfico.
6 - Reinicialização do sistema.

/etc/init.d

O diretório “/etc/init.d/” contém scripts de inicialização e de encerramento para cada serviço do sistema.

Exemplo:

/etc/init.d/sshd = É um exemplo de script de gerenciamento de serviço. Nesse caso o "sshd" é um script para gerenciar p serviço SSH.

Esses scripts aceitam argumentos como start, stop, restart, status e reload.

Eles (esses scripts) não são executados diretamente pelo processo “init”. Em vez disso, o “init.d” consulta os diretórios “/etc/rc0.d” até “/etc/rc6.d” que possuem links simbólicos para os scripts.

Links dos diretórios /etc/rc0d/ até /etc/rc6.d

Os links são nomeados nos formatos “KNNnome” e “SNNnome”.

K = Kill (finalizar) Serviços que não deverão rodar no runlevel; Esses são executados primeiros.S = Start (iniciar) Serviõs que deverão rodar no runlevel.NN = Número de sequência (ordem de execução dos scripts).nome = Identificação dos scripts.

Comando telinit

O comando telinit muda o runlevel em tempo de execução.

telinit 0 = Desligar o sistema.

Comando runlevel

runlevel <enter> = Mostra o runlevel préviio e o atual.q

--

--