Acho que li algo sobre isso um tempo atrás, mas não me lembro como isso é feito. Basicamente, eu tenho um serviço no /etc/init.d
qual gostaria de iniciar automaticamente no momento da inicialização. Lembro que isso tem algo a ver com o link simbólico do script para o /etc/rc.d
diretório, mas não me lembro no momento. Qual é o comando para isso?
Eu acredito que estou em um derivado do Fedora / CentOS.
fedora
boot
init-script
Naftuli Kay
fonte
fonte
/etc/init
,/etc/init.d
,/etc/rc.d
,/etc/rc.local
e um pouco mais que isso tem?Respostas:
Se você estiver em um sistema baseado na Red Hat, como você mencionou, poderá fazer o seguinte:
/etc/init.d
(por exemplo/etc/init.d/myscript
). O script deve ter o seguinte formato:O formato é bastante padrão e você pode visualizar os scripts existentes no
/etc/init.d
. Em seguida, você pode usar o script assim/etc/init.d/myscript start
ouchkconfig myscript start
. Ackconfig
página do manual explica o cabeçalho do script:O exemplo de código de início, parada e status usa funções auxiliares definidas em
/etc/init.d/functions
Ativar o script
Verifique se o script está realmente ativado - você deve ver "on" para os níveis selecionados.
fonte
Você testa em qual nível de execução sua máquina normalmente inicia.
Geralmente, são 5 ou 2 - existem várias convenções, mas nada realmente estabelecido. O Ubuntu usa 2, enquanto a distribuição anterior eu costumava usar sempre
Então você cria um link simbólico a partir do seu script init, talvez
/etc/init.d/foobar
para/etc/rc2.d/SXYfoobar
S significa 'Inicie este script neste nível de execução (aqui: 2). XY é um número decimal de dois dígitos, relevante para a sequência, os scripts são iniciados.
Se você depende do script S45barfoo para ser executado antes de você, e o S55foofoo depende do seu script, escolha xy entre 45 e 55. Para números iguais, a ordem de inicialização é indefinida.
Enquanto isso, o Ubuntu mudou (está alternando) para outro procedimento de inicialização, chamado
upstart
.E observe: nem sempre os links apontam para
/etc/rcX.d
- às vezes é/etc/init/rcX.d
ou algo semelhante, mas deve ser fácil de encontrar, em algum lugar abaixo de / etc.Se você deseja iniciar algo no final dos scripts de inicialização,
/etc/rc.local
seria um arquivo a procurar, mas, se o X11 já estiver em execução, poderá procurar uma opção de inicialização automática do ambiente da área de trabalho ou/etc/X11/Xsession.d/
com um padrão semelhante ao descrito acima.Se você depende da rede estar ativa, existe um diretório separado (if-up.d) e para dispositivos montados, como unidades USB externas
/etc/udev/rules.d/
.fonte
update-rc.d
?Como Naftuli Tzvi Kay perguntou sobre o Debian acima: A partir do Debian 6, seu script deve conter um cabeçalho LSB (Linux Standards Base) que indica suas dependências e capacidades ( consulte a página de wiki do debian ).
Se um cabeçalho LSB estiver presente, você pode usar
insserv
para incluir seu script no processo de inicialização ( veja outra página wiki da debian ).fonte