программа linux не запускается во время загрузки

программа linux не запускается во время загрузки

У меня есть несколько скриптов: collection.sh start.sh script1.shи script2.sh. Я настроил их на запуск во время загрузки, так что:

  • collection.shзвонкиstart.sh
  • start.shназывает обаscript?.sh

Сбор осуществляется следующим образом:

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

Если я запускаю collection.sh вручную (т. е. $ . /etc/init.d/collection.sh), то все работает так, как и ожидалось, но если я перезагружаю или полностью выключаю и включаю компьютер, то collection.sh запускается, но start.sh никогда не запускается.

Для ясности приведем пример того, как выглядит каждый скрипт:

  • 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
    

У меня есть распечатанные заявления, которые подтверждают, что он collection.shначинается (фактически дважды) и start.shникогда не начинается.

Я также подтвердил, что использование ps aux | grep collection.shэтого метода collection.shзавершается.

решение1

У вас могут возникнуть проблемы с путями.

измените PATH в start.sh или используйте полные пути в start.sh для запуска script[12].sh

Вы не указали, какой дистрибутив используете (каждый немного отличается) — иногда применяется метод «кувалды», при котором строки добавляются в /etc/rc.local.

Связанный контент