Quando o sistema transita de um nível de execução para outro, ele executa todos os scripts "K" no nível de execução existente, em ordem, e todos os scripts "S" no novo nível de execução, em ordem. O Debian implementa a inicialização paralela, portanto, a maioria dos scripts será executada simultaneamente (mas com eficiência na ordem) e há um padrão para incluir informações de dependência em cada script e ferramentas para inserir / remover scripts. Você pode desativar a simultaneidade adicionando CONCURRENCY=NONE a /etc/default/rcS .
No atual inittab do Debian, o conjunto de comandos a ser executado em cada transição de nível de execução é /etc/init.d/rc
Quando você inicializa, o sistema é considerado no runlevel S . Os scripts "S" em /etc/rcS.d são executados, em ordem (por /etc/init.d/rc ).
Quando eles são concluídos, o sistema é movido para o nível de execução que você especificou na linha de comando do kernel, ou o nível de execução padrão, que é 2, se você não tiver o X instalado.
Não há scripts "K" em /etc/rcS.d , então nada acontece - o runlevel "S" é destinado à inicialização geral do sistema. Mas então todos os scripts "S" em /etc/rc2.d são executados, em ordem.
Uma vez concluídas, você está oficialmente no runlevel 2. O comando /etc/init.d/rc retorna, e init spaws o getty está configurado para fazer e aguarda que um sinal mude o nível de execução.
Quando você desliga, um sinal é enviado para init . Então, o sistema está se movendo do nível de execução 2 para 6 (reinicialização) ou 0 (desligamento). Então todos os scripts "K" em /etc/rc2.d são executados, em ordem. Então, todos os scripts "S" em /etc/rc6.d ou /etc/rc0.d são executados, em ordem, se existirem.
Então, como este é o nível de execução 0 ou 6 (ook em /etc/init.d/rc - esse script explicitamente testa 0 ou 6), ele fará a transição imediatamente para fora do runlevel, fazendo com que todos os scripts "K" sejam executados. p>
O último script "K" para 0 ou 6 será um comando que interrompe / desliga ou reinicializa o sistema.