Alterar a prioridade dos scripts do init

2

Estou executando um raspbian (baseado no debian). Eu quero mudar a prioridade dos serviços de init, então o primeiro script que é executado pelo init é um feito para mim. Como eu posso fazer isso?

No runlevel S eu tenho 3 scripts com prioridade 01: hostname.sh, fake-hwclock e mountkernfs.sh. Se eu apenas colocar meu script no runlevel S com prioridade 01, não é o primeiro a ser executado. Eu tentei alterar o priortiy de todos esses scripts para 02 usando (por exemplo, no caso de mountkernfs.sh)

sudo update-rc.d -f mountkernfs.sh remove
sudo update-rc.d mountkernfs.sh start 02 S

O primeiro comando remove efetivamente o script do /etc/rcS.d. O segundo comando coloca novamente o mountkernfs.sh com prioridade 01.

Alguma ideia? Obrigada!

    
por aleixrocks 02.07.2013 / 11:21

1 resposta

2

Os scripts init em /etc/init.d/ especificam algumas informações sobre o seu cabeçalho LSB, que em essência são apenas algumas linhas no início do script. O campo "Required-Start" de algum script permite que você especifique serviços que devem ser inicializados antes deste script. insserv adiciona automaticamente scripts de inicialização sobre o cabeçalho do LSB.

Portanto, para resolver o problema:

  • Nomeie seu script "X" usando o campo "Fornece" no cabeçalho do LSB.
  • Adicione os runlevels nos quais o script deve ser iniciado e interrompido usando os campos "Default-Start" e "Default-Stop", respectivamente, no cabeçalho do LSB.
  • Defina "X" para o campo "Required-Start" no cabeçalho LSB dos scripts com prioridade 01: hostname.sh, fake-hwclock e mountkernfs.sh.
  • Adicione o serviço usando sudo insserv name_of_your_script_file (não o nome que você dá ao campo "Fornece")

Isso move todas as prioridades de script necessárias dos scripts envolvidos para que correspondam às dependências. No meu caso:

  • S01X.sh
  • S02mountkernfs.sh
  • S02hostname.sh
  • S02fake-hwclock
  • S03udev

Fonte: link

    
por 04.07.2013 / 11:15