![Esli Silva Esli Silva](//static.vivaolinux.com.br/imagens/fotos/198210e705de5.png)
eslih
(usa Debian)
Enviado em 20/06/2014 - 12:19h
Olá,
Se você quiser ser mais especifico ou, rodar seu script antes da tela de login mas somente depois que outro script ou aplicação seja executado (por exemplo, executar um script antes da tela de login (ex.: GDM/LXDM/KDM) mas depois que montar um diretório, ou conectar na rede, enfim...), ou se seu script toma ações com algum serviço de rede, colocar no rc.local pode não ser vantajoso (ou pode ocasionar problemas).
Sua distribuição possui Run Levels (que vai do 0 ao 6):
0 (desligar o sistema)
1 (single-user),
2 ao 5 (multiuser, geralmente o padrão normal de uso do linux é o 2 ou 3)
6 (reinicia o sistema)
Ou seja, se você quer que execute um script somente antes de desligar o sistema, você tem colocá-lo no zero.
Pode-se também, colocar um comando para executar uma determinada ação ao iniciar o sistema, e quando ele for desligar ou reiniciar, executa uma rotina para parar seu script (caso faça algo realmente muito incomum ao sistema).
Para isto, basta colocar um link do seu script dentro dos diretórios associados a cada um destes runlevels dentro de /etc:
rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d e rc6.d.
Se você olhar dentro destes diretórios, vai ver que cada script lá possui um prefixo, por exemplo: S02blabla, S03blablabla...
Este prefixo (letra+numero) é quem vai determinar a ordem de quem será executado primeiro. Nomeando um arquivo como "S99meuscript", ele será o último a ser executado no sistema.
Seguindo o padrão/normativa, seu script estará no /usr/local/bin ou sbin, daí crie um link com o comando "ln origem/do/script /etc/rcX.d"...
Coloque também essas informações no cabeçalho do seu script.