Ich habe einige Skripte: collection.sh
start.sh
script1.sh
und script2.sh
. Ich habe sie so eingerichtet, dass sie beim Booten ausgeführt werden, sodass:
collection.sh
Anrufestart.sh
start.sh
ruft 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.sh
es startet (tatsächlich zweimal) und start.sh
nie startet.
Ich habe außerdem bestätigt, ps aux | grep collection.sh
dass die Nutzung collection.sh
vollstä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.