Outra maneira típica de iniciar algo na inicialização em muitos * nix é (ou foi, eu acho que isso pode estar começando a perder o favor - veja alternatives ) para colocar scripts em um diretório que, dependendo do OS / distribuição em particular, pode ser algo como /etc/rc2.d
, /etc/rc3.d
, /etc/rc/rc3.d
ou similares (diferentes distribuições usam diferentes "níveis de execução", que é de onde vem o número - veja o link abaixo). Freqüentemente, estes também são ligados simbolicamente em ou em arquivos de /etc/init.d
, para uma execução mais fácil à mão, e recebem um argumento "start" e / ou "stop" na maioria das plataformas * nix, e também "status", " reiniciar ", etc. em muitas plataformas linux. Em tais sistemas, eles geralmente são executados por init
, via inittab
- consulte scripts de init do SysV . Em sistemas * BSD, há um estilo diferente de um conceito similar e, como mencionado acima, há um monte de variações.
No estilo acima, os scripts em, por exemplo, /etc/rc2.d
(para um sistema com um nível de execução padrão 2) geralmente começam com a letra S
ou K
e, em seguida, um número de dois dígitos. Os scripts que começam com S são executados em ordem lexicográfica (que geralmente se traduz em ordem numérica) ao inicializar, em nível 2, com um argumento de "start". Ao desligar, os scripts prefixados com K são executados de forma semelhante, com um argumento de "stop".
Os arquivos em /etc/init.d
(ou às vezes /etc/rc/init.d
ou outras variações) são nomeados sem os prefixos S e K ou os números numéricos. Tipicamente, os arquivos nos vários diretórios /etc/rc?.d ligam aos arquivos reais, freqüentemente referenciados através do prefixo de caminho relativo ../init.d/
.
Vários utilitários existem em vários sistemas para gerenciá-los, assim como ligar e desligar, etc. No IRIX (desde o IRIX 4, pelo menos, se minha memória servir), costumava ser uma ferramenta chamada chkconfig
, que não iria manipular os links, mas que seria verificado pelos scripts para ver se eles devem ser executados ou não. Eu acho que o IRIX foi o primeiro sistema operacional a ter algo assim. Mais tarde, em alguma versão do RedHat que eu costumava ter, havia uma ferramenta com o mesmo nome, mas se comportava de maneira um pouco diferente, na verdade gerenciando os links simbólicos - veja chkconfig(8)
para o que eu acho que é provavelmente a mesma versão (ou muito similar) que usei então.
Em um sistema Ubuntu 9.04 que eu tenho acesso, parece que update-rc.d
é o script a ser executado.
Se você estiver em um sistema que usa inittab, você também pode adicionar coisas diretamente lá - o que pode ser especialmente útil para coisas que você quer executar não apenas uma vez na inicialização, mas para ter ativamente monitorado (por init
) para respawn
se eles falharem ou terminarem. Veja a saída de man inittab
(se você tiver) no seu sistema para obter informações adicionais. E / ou man init
, etc. Existem muitos sabores diferentes, e eu não estou (atualmente) muito familiarizado com o Debian ou o Ubuntu, então eu não tenho certeza exatamente do que você deve apontar, mas espero que isso dê a você alguns pontos de partida.
a seção @reboot no crontob é nova para mim, mas também parece ser uma opção útil - embora eu sugira que os scripts init sejam preferíveis para muitas coisas. Mas veja man 5 crontab
para muito mais informações sobre o que você pode colocar em sua configuração do cron, e como ele pode ser dito para executar coisas, e quando (incluindo, assumindo uma versão Vixie / ISC do cron [ver cron history ] com @reboot
).
Espero que isso seja útil.