programa Linux não está sendo executado no momento da inicialização

programa Linux não está sendo executado no momento da inicialização

Eu tenho alguns scripts: collection.sh start.sh script1.she script2.sh. Eu os configurei para serem executados no momento da inicialização, para que:

  • collection.shchamadasstart.sh
  • start.shliga para os doisscript?.sh

A coleção é configurada da seguinte forma:

$ cp collection.sh /etc/init.d/
$ update-rc.d collection.sh defaults 99

Se eu executar o collection.sh manualmente (ou seja $ . /etc/init.d/collection.sh), tudo funcionará conforme o esperado, mas se eu reiniciar ou desligar completamente e iniciar o computador, o collection.sh será executado, mas o start.sh nunca será executado.

Para esclarecer, aqui está um exemplo da aparência de cada script:

  • collection.sh:

    . /path/to/start.sh &
    
  • start.sh:

    ./script1.sh &
    ./script2.sh &
    
  • script1.sh/script2.sh:

    while :
    do
        #does some stuff here
        #yes this is an infinite loop
    done
    

Tenho declarações de impressão que confirmaram que collection.shinicia (na verdade, duas vezes) e start.shnunca inicia.

Eu também confirmei, usando ps aux | grep collection.shisso collection.shé concluído.

Responder1

Você pode ter problemas com caminhos.

altere PATH em start.sh ou use caminhos completos em start.sh para iniciar o script[12].sh

Você não menciona qual distribuição está usando (cada uma é um pouco diferente) - uma abordagem de marreta às vezes coloca linhas em /etc/rc.local.

informação relacionada