Existe um sistema init no Linux chamado SysVinit que é modelado após o sistema init do UNIX System V. Algumas versões do Linux, na verdade, ainda usam este sistema, mantêm compatibilidade com ele, como SysVcompat do Systemd, ou o substituíram em parte (sem sysvcompat mas ainda usam scripts sysv como o Debian) ou o substituíram como sistemas Systemd "puros". / p>
É o SysV que essencialmente implementa o conceito de níveis de execução. Scripts são colocados em /etc/rc{runlevel}.d/ onde runlevel é o runlevel. O SysV também define o comportamento de ordenação padrão dos níveis de execução, incluindo qual deles usar como padrão. Cada script em cada nível de execução é executado com suas funções de inicialização ou desligamento, dependendo se esse nível de execução está subindo ou descendo. Assim, em um sistema sysvinit, sim quando você inicializa sua primeira execução / sbin / init e esse programa executará subseqüentemente as funções de inicialização de cada script em cada nível de execução. Eu também devo salientar que você pode ter mais scripts instalados do que aqueles ligados em / etc / rc * e é assim que você ativa e desativa os scripts e, portanto, os serviços que eles controlam.
Sistemas que não usam sysv não precisam fazer isso como systemd. Para colocá-lo simplesmente, o systemd possui unidades que definem suas dependências, como outros serviços, pontos de montagem, temporizadores ou destinos, como "network.target". Em vez de entrar em mais detalhes sobre o systemd, direi apenas que o systemd mantém a compatibilidade completa com scripts sysv, mas não necessariamente com seus níveis de execução. Além disso, o init pode ser executado primeiro ou o systemd pode ser executado e, em seguida, executar todos os scripts do sysv. Ou sua distro poderia ter substituído todos os seus scripts sysv por unidades systemd. A maioria das distros terá scripts de compatibilidade instalados para que coisas como reboot
ou telinit
funcionem através do systemd.