Execução tardia de scripts durante a inicialização, terminando com uma reinicialização sem o prompt de login

2

Estou fazendo um "instalador" especial para um sistema embarcado no qual gostaria que o kernel inicializasse, executasse um conjunto de coisas muito tarde no processo em que os periféricos foram configurados e, em seguida, reinicialize o sistema sem o prompt de login sempre acontecendo.

Eu estou vagamente familiarizado com o init e runlevels, eu presumo neste ponto que é assim que eu vou conseguir isso mais facilmente. Posso colocar um script (então onde / como?) Na sequência de inicialização que executa minhas coisas e depois coloca a máquina em uma reinicialização posterior?

Se for importante, o rootfs é debian.

    
por Stonie 19.07.2014 / 18:24

1 resposta

1

Para o Debian 7 e versões anteriores, a opção mais fácil é colocar seu código em /etc/rc.local . Isso é executado no final da seqüência de inicialização, pouco antes da tela de login ser exibida quando você inicializa no modo de console ou antes de X ser iniciado de outra forma. Até esse script sair, nada mais acontece, portanto, se você reinicializar o sistema no final, talvez não veja a tela de login. Se você fizer isso, ele deve desaparecer rapidamente.

Eu especifiquei a versão Debian acima porque o Debian estará se movendo de SysV init para systemd na próxima versão principal. Embora seja provável que esta versão futura do Debian ainda permita rc.local e tal compatibilidade retroativa, você realmente gostaria de fazer uma maneira diferente para systemd . Isso está fora do escopo desta questão, no entanto.

Mais amplamente, os Linuxes embarcados não precisam seguir as regras estabelecidas pelos Linuxes de desktop. Distribuições Dedicadas do Linux embarcadas permitem que você personalize coisas como a sequência de inicialização funciona, especificamente para lidar com problemas como o que você está enfrentando.

    
por 19.07.2014 / 21:30