Esqueça os runlevels.
Quando os níveis de execução foram introduzidos no AT & T Unix System 3 (Sim, /etc/inittab
chegou no System 3 e não no System 5.) houve mutterings no mundo BSD e os BSDs nunca adotaram este sistema. Todos esses anos mais tarde, a maioria das partes do mundo do System 5 acabou com os níveis de execução.
No IBM AIX, o número de níveis de execução usados na prática diminuiu para 1 na versão 3.1, com o advento do System Resource Controller. A IBM pensou que as pessoas poderiam esquecer os níveis de execução em 1990. Os níveis de execução 1
e 3
a 9
estavam "reservados" a partir daquele momento.
As pessoas do sistema declararam que os runlevels são "obsoletos" em seu documento, cerca de duas décadas depois. Como o SRC antes dele, e como outros sistemas, como o Solaris 'SMF ou o s6-rc
da Laurent Bercot ou o runit-init
da Gerrit Pape ou o conjunto de ferramentas de gerenciamento do sistema nosh; O systemd não os requer, ou o conceito que eles incorporam. Em vez disso, existem mecanismos melhores , de vários tipos, nesses sistemas.
( runit
tem o conceito de alternar entre vários diretórios de varredura. s6-rc
tem o conceito de mudar o "estado vivo" . O nosh system-control
tem o conceito de pacotes de serviços de destino que want/
ou conflict/
com outros pacotes de serviços. A SMF do Solaris tem "marcos" como milestone/multi-user-server
, milestone/self-assembly-complete
e milestone/name-services
. E assim por diante.)
BusyBox init
tem um arquivo de configuração inittab
, mas isso é diferente do mais comum, e não contém nenhuma noção de níveis de execução.
Então:
- Não,
init
não procura coisas nesses diretórios e scripts com base nos números de nível de execução. Apenas dois sistemas init já fizeram , e mesmo em um deles havia a opção de umrc
que usava um arquivo de dados em vez de links simbólicos em/etc/rc.d/
. - Não, mesmo no sistema AT & T Unix System 3 (e em seu sucessor e clones), não foi
init
que analisou esses scripts. Foirc
. - Nos sistemas operacionais systemd, os scripts
/etc/init.d/
são processados por um mecanismo de compatibilidade com versões anteriores que os transforma em unidades de serviço nativas. Isso ignora em grande parte as informações fornecidas em nível de execução, tanto nos próprios scripts quanto nos subdiretórios/etc/rc.d/
, e apenas cria alguns destinos em seu código. - Não, os níveis de execução não eram dígitos.
S
é um nível de execução e não um dígito, assim comom
,h
ea
,b
ec
do AIX. (Eu não vou entrar em detalhes aqui sobre o que eram, porque isso é algo que você pode esquecer .
O único sistema que contraria a tendência é o TrueOS. Baseado no FreeBSD, que ainda usa Mewburn rc
e FreeBSD init
, nenhum dos quais possui um mecanismo de nível de execução, ele adotou o OpenRC para substituir o Mewburn rc
. Ironicamente, isso está adicionando níveis de execução do Sistema 5 a um BSD no momento em que o lado do Sistema 5 do universo finalmente consignou níveis de execução para a lata de lixo da história. ☺
Leitura adicional
- Jonathan de Boyne Pollard (2015).
/etc/inittab
é coisa do passado. . Respostas frequentemente dadas. - link
- link
- "VR" (2015-09-05). Uma história dos modernos sistemas de iniciação (1992–2015) . Dark'N'Edgy.
- link
- link
- Jonathan de Boyne Pollard (2015). Os problemas conhecidos com o System 5
rc
. Respostas frequentemente dadas. - link
- link