Script na inicialização sem update-rc.d

3

Eu tenho uma instalação mínima do Debian e só quero iniciar um script personalizado na inicialização.

  1. Eu tenho um script em /etc/init.d/myscript ,
  2. Eu coloco um chmod 700 e crie links simbólicos para S20myscript em:

    /etc/rc2.d
    /etc/rc3.d
    /etc/rc4.d
    /etc/rc5.d
    

Mas o script NÃO é iniciado na inicialização.

Quando uso este script com update-rc.d (ou insserv ...), funciona.

Eu não entendo, sou forçado a usar este comando?

(e não, não quero usar /etc/rc.local ).

    
por Jean-Philippe Blary 04.11.2012 / 15:55

2 respostas

2

Tente remover todos os links simbólicos nos diretórios rc*.d .

Em seguida, tente executar:

update-rc.d -n myscript enable

Onde -n significa not-really

Isso listará o que o insserv deve fazer: criar o symlink e gerando alguns .depend.* files

Dê uma olhada no init.d/.depend.boot , init.d/.depend.start e init.d/.depend.stop : talvez você precise atualizar esses arquivos também? Se você decidir alterá-las manualmente (mas o que há de errado com update-rc.d ?), Tome cuidado adicional para que outras chamadas para update-rc.d não atrapalhem suas edições ...

Veja man startpar e man insserv para obter algum conhecimento sobre o uso de como esses arquivos .depend.* .

E meu último conselho é: use update-rc.d :)

    
por 11.11.2012 / 13:26
0

O que há de errado em adicioná-lo ao /etc/rc.local? Essa é a maneira mais fácil:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.    
#
# By default this script does nothing.
    
por 11.11.2012 / 05:22