Debian: Como executar um script na inicialização sem ter que escrever 30 linhas de script de shell?

18

Eu tenho um servidor Debian e só preciso executar um script na inicialização.

Eu li isso: link

Eu tenho agora: insserv: aviso: script 'perdendo tags LSB e substitui

então parece que tenho que adicionar agora:

### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

Parece agora louco: como 30 linhas de script apenas para executar um programa na inicialização.

Existe uma ferramenta que permite fazer isso de uma forma simples?

Atenciosamente

    
por yarek 11.11.2015 / 18:27

3 respostas

25

Se o seu script for "apenas um script" e não iniciar um daemon, considere usar /etc/rc.local (executado como root) ou crontab (executado como usuário de seu coice).

Dois exemplos:

  • /etc/rc.local

    #!/bin/sh -e
    #(Multiple lines of comments removed.)
    /usr/local/bin/your-script.sh
    exit 0
    
  • crontab (editado por meio de, por exemplo, crontab -e )

    #(Multiple lines of comments removed.)
    @reboot /usr/local/bin/your-script.sh
    

Editar 1: Basta ler o seu comentário: Se o seu script iniciar daemons, que devem ser executados o tempo todo, eu aconselho a não usar rc.local ou crontab e, em vez disso, escreva corretamente ( ou vários) init.d script (s). Desta forma você / seu sistema é capaz de reiniciar / recarregar / iniciar / parar os daemons.

Edit 2: Você chama isso de louco, mas o LSB tags fornece algum valor: "Ao documentar as dependências de tempo de execução para scripts init.d, é possível verificar a ordem de inicialização atual , ordene a inicialização usando essas dependências e execute os scripts de inicialização em paralelo para acelerar o processo de inicialização. " Para mais detalhes, vá para o wiki Debian .

(A propósito: é um aviso, então, na verdade, depende de você, como e o que fazer com isso.)

    
por 11.11.2015 / 18:42
0
O

supervisord também é uma opção. Você vai escrever novamente algumas linhas para iniciar o node.js e o PHP, mas elas serão menores.

    
por 12.11.2015 / 15:30
0

Você pode usar monitd para isso, basta escrever alguma definição de monit e ele iniciará daemons para você. Mas por que você não usa a maneira correta com scripts LSB? Não é tão difícil escrevê-lo (você está escrevendo apenas uma vez) e é a maneira mais limpa e valiosa de conseguir isso.

    
por 12.11.2015 / 15:33