Inicialização do Linux — init, runlevels, init.d, inittab, telinit
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