Alterna entre o runlevel com o comando init no script bash… init 3 para init 5

0

Preciso da sua ajuda com o script bash que estou tentando criar. Para manter as coisas simples, vou resumir:

O script começa a ser executado assim que o nível 5 é executado, então copiei o script para /etc/rc.d/rc5.d/S99fix E deve ficar assim:

init 3

# Do some stuff…

init 5

rm –rf /etc/rc.d/rc5.d/S99fix

O problema é que quando eu reinicio a máquina e ela alcança o runlevel 5, ela inicia o script executando o comando init 3, mas aí termina ... Estou matando meu próprio script antes do tempo. o Fazer alguma coisa, init 5, rm -rf não roda. Existe uma maneira que eu possa fazer o que eu quero fazer e ainda alternar entre runlevels sem matar o meu script ao fazê-lo?

Apenas para adicionar alguns detalhes a essa pergunta ...

  • Estou usando o SLES 11.2
  • Estou instalando e configurando drivers nvidia, portanto, é necessário fazer coisas no nível de execução 3.
  • Esta pesquisa começou como uma maneira de fazer coisas para o servidor X enquanto no nível de execução 3 e trazê-lo de volta ao nível de execução 5. Eu presumo que há uma opção apenas para parar e iniciar o serviço xdm. Mas agora me interessei em entender se a alternância entre o nível de execução 3 e 5 é possível no script bash.
por Asaf Magen 31.12.2013 / 08:01

2 respostas

1

Você pode, e mudou, o runlevel de um script bash. Mas não faz sentido alterar o nível de execução de um script que é executado em uma mudança de nível de execução! Mudar o nível de execução mata o seu script porque é parte da configuração do nível de execução anterior.

O que você precisa fazer em relação aos drivers da NVidia, não está relacionado a estar no nível de execução 3. Talvez você precise fazer as coisas antes de iniciar o servidor X? Nesse caso, execute-o durante a inicialização (runlevel S) ou na inicialização do runlevel que você pretende acessar, mas antes de executar o xdm.

    
por 01.01.2014 / 01:26
0

Eu suspeito que funcionaria. Durante as mudanças de nível de execução, o init pode matar todos os processos ativos, incluindo o processo bash.

Você deve ver qual script que init executa (após uma mudança de nível de execução) e adicionar seus ganchos lá.

    
por 31.12.2013 / 09:26