Escrevendo scripts UNIX que incluem “init”

2

Eu tenho um script de instalação para o sistema operacional que estou configurando e, em parte do script, eu preciso instalar os drivers da placa gráfica. Para fazer isso, eu sou obrigado a mudar para o runlevel 2 usando o comando

init 2

Então, se o script consistir em

# In run level 3
echo "The";
init 2;
echo "quick";
init 3;
echo "brown";

, a única coisa que está sendo impressa é "The" devido ao fato de que o script é interrompido quando o comando init é enviado. Eu gostaria de tornar a instalação do sistema operacional o mais automatizada possível, mas isso parece colocar uma chave no processo. Qualquer ajuda seria muito apreciada.

Felicidades, Charlie

    
por candrews 03.08.2010 / 15:30

1 resposta

1

Como uma abordagem geral, o que você poderia fazer é, no seu script:

  1. crie um 'script de inicialização' chamado scriptname dinamicamente, com os comandos que você precisa executar nesse nível de execução específico.
  2. crie os links simbólicos necessários em /etc/rcrunlevel.d/S99*nome do script *.
  3. mude para o nível de execução invocando o init runlevel
  4. script de inicialização scriptname será executado
  5. scriptname pode ser desativado após a execução removendo o link simbólico /etc/rcrunlevel.d/S99*scriptname* e, em seguida, repetindo de 1 a 5.

Parece um pouco feio, mas funciona (fez isso há muito tempo).

    
por 03.08.2010 / 16:29