Linux-Programm läuft beim Booten nicht

Linux-Programm läuft beim Booten nicht

Ich habe einige Skripte: collection.sh start.sh script1.shund script2.sh. Ich habe sie so eingerichtet, dass sie beim Booten ausgeführt werden, sodass:

  • collection.shAnrufestart.sh
  • start.shruft beidescript?.sh

Die Sammlung wird wie folgt eingerichtet:

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

Wenn ich collection.sh manuell ausführe (also $ . /etc/init.d/collection.sh), funktioniert alles wie erwartet. Wenn ich jedoch einen Neustart durchführe oder einen vollständigen Shutdown durchführe und den Computer starte, wird collection.sh ausgeführt, aber start.sh wird nie ausgeführt.

Zur Verdeutlichung hier ein Beispiel, wie jedes Skript aussieht:

  • 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
    

Ich habe Druckanweisungen, die bestätigt haben, dass collection.shes startet (tatsächlich zweimal) und start.shnie startet.

Ich habe außerdem bestätigt, ps aux | grep collection.shdass die Nutzung collection.shvollständig ist.

Antwort1

Möglicherweise haben Sie Probleme mit Pfaden.

ändere PATH in start.sh oder verwende vollständige Pfade in start.sh, um script[12].sh zu starten

Sie erwähnen nicht, welche Distribution Sie verwenden (jede ist etwas anders) – ein Vorschlaghammer-Ansatz besteht manchmal darin, Zeilen in /etc/rc.local einzufügen.

verwandte Informationen