El programa de Linux no se ejecuta en el momento del arranque.

El programa de Linux no se ejecuta en el momento del arranque.

Tengo algunos scripts: collection.sh start.sh script1.shy script2.sh. Los tengo configurados para ejecutarse en el momento del arranque para que:

  • collection.shllamadasstart.sh
  • start.shllama a ambosscript?.sh

La colección está configurada por lo siguiente:

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

Si ejecuto collection.sh manualmente (es decir $ . /etc/init.d/collection.sh), todo funciona como se esperaba, pero si reinicio o apago por completo e inicio la computadora, entonces collection.sh se ejecuta pero start.sh nunca se ejecuta.

Para aclarar, aquí hay un ejemplo de cómo se ve 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
    

He impreso declaraciones que han confirmado que collection.shcomienza (dos veces en realidad) y start.shnunca comienza.

También lo he confirmado, el uso ps aux | grep collection.shde eso collection.shse completa.

Respuesta1

Es posible que tengas problemas con las rutas.

cambie la RUTA en start.sh o use rutas completas en start.sh para iniciar el script[12].sh

No mencionas qué distribución estás usando (cada una es ligeramente diferente); un enfoque de mazo a veces consiste en poner líneas en /etc/rc.local.

información relacionada