quinta-feira, 22 de novembro de 2007

Adicionando serviços na inicialização


Para colocar um serviço na inicialização do Linux podemos utilizar uma ferramenta chamada ntsysv, porém é interessante saber como funciona executar esta tarefa manualmente.

Os serviços do Linux ficam no diretório /etc/rc.d/init.d. Na inicialização os serviços localizados no diretório /etc/rc.d/rc[n].d são inicializados ou parados. O [n] é o número correspondente ao run level, ou seja, é só adicionar um link do serviço para este diretório com a seguinte nomenclatura:

[S|K]56[nomedoserviço]

Sendo:
  • [S|N]: Isto quer dizer se o serviço ou programa deve ser iniciado ou não;
    • S: start (iniciar);
    • K: kill (matar, parar).
  • 56: É o número da fila em que ele deverá ser executado, se o número for menor ele será executado antes que os outros serviços;
  • [nomedoserviço]: somente para identificação humana, não interfere em nada.

Pronto, para inicializar um script primeiro você copia este script para o /etc/init.d:

# cp /root/rotina.sh /etc/init.d

Depois crie um link simbólico para o diretório /etc/rc.d/rc.[n]d (para qual run level você quiser):

# ln -s /etc/rc.d/init.d /etc/rd.c/rc3.d/S24rotina

Pronto, na inicialização em run level 3 o script rotina será executado.



Abraços e até a próxima!

Um comentário:

FireBird disse...

Bacana isso... Em distros debian-beased, a gente pode usar tb o update-rc com a sintaxe:

update-rc.d nomedobaguio.sh start 20 2 3 4 5 .

desse jeito ele add o script usando link simbolico nos rc.2,3,4,5 e o q vc tiver usando com o padrão 20 de prioridade.