
Quando o processo init é executado quando o kernel é carregado, ele lê o arquivo /etc/inittab em uma abordagem de cima para baixo, ou seja, ele executa cada linha conforme aparece no arquivo.
Em caso afirmativo, e com base na minha leitura e compreensão, isso significa que ele entra no nível de execução documentado e, em seguida, inicia o processo sysinit ou vice-versa?
Por exemplo, os exemplos comuns que tenho visto são
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
Responder1
Primeiro, observe que o formato de inittab
é assim:
Identifier:RunLevel:Action:Command
O ponto chave aqui é o runlevel
. Dado o seguinte código de exemplo:
a:3::
b:123::
c:23::
d:123::
e:23::
Então a ordem de execução dos vários IDs, começando em runlevel
1 seria:
init 1: b d
init 2: c e
init 3: a
overall: b d c e a
Como você pode ver, ele os executará na ordem em que estão listados no arquivo,agrupar por nível de execução! Lembre-se também, se o identificador não estiver no nível de execução especificado, ele será emitido a SIGTERM
e depois a SIGKILL
.
Responder2
Não é um script processado em uma ordem específica. É um arquivo de configuração que informa ao sistema quais scripts/comandos executar para um determinado evento ou nível de execução. A ordem das entradas no arquivo não fará diferença e você poderá ter vários scripts ou comandos para cada nível de execução.
a primeira linha que você mostra "id:3:initdefault:" informa ao sistema que o nível de execução padrão é 3 => modo multiusuário para a maioria das versões.
a linha "si::sysinit:..." diz ao sistema para executar o script /etc/rc.d/rc/sysinit na inicialização do sistema (executado quando o sistema é inicializado).
se você man inittab, deverá obter uma lista de todas as opções do arquivo.