• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Zweites Script starten

Hallo

Wenn ich aus einem Startscript heraus ein zweites Script starte und dann das Startscript beende, so wird ja das zweite Script auch mit beendet.
Was muß ich tun, damit das zweite Script trotz Beendigung des Startscripts weiterläuft?

Edgar
 
A

Anonymous

Gast
Das komme ein bisschen auf das Script selbst an das du da starten willst.

die klassische Methode mit dem Vorschaltkommando nohup und in den Hintergrund schicken. Das Problem dabei. Das Script kann keine Eingaben von der Tastatur empfangen und wenn es Ausgaben machen will, dann schreibt es diese ins aktuelle Verzeichnis in eine Datei nohup.out. Ausgaben sollten also in eine Datei oder in den Mülleimer umgeleitet werden. Das Script würde ewig laufen, wenn es sich nicht von selbst beendet, oder muss mit einem kill abgeschossen werden, Eignet sich aber zB um Dinge aus dem Internet runterzuladen oÄ. Kommando sieht oft in etwa so aus.

Code:
nohup script.bash > /dev/null 2>&1 &

Eine ander Methode ist screen
Damit kann man später wieder zu diesem Programm wechseln und dort Eingaben machen oder nach dem Rechten sehen.
mal als kleines Beispiel im X-terminal ausführen.
Code:
echo "while true; do  echo testausgabe;sleep 5; done" > test.sh
chmod u+x test.sh
screen ./test.sh
Alles wunderbar jetzt läuft eine Testausgabe alle 5 Sekunden.
Aber jetzt machst du das x-Terminal mit samt Fenster einfach zu ohne das Script vorher zu beenden.
Normal währe das Script jetzt beendet. Aber.
Mach ein neues x-terminal auf und gebe dort
Code:
screen -r
ein, Guckst Du ;-)
Genauers gibts in der Manpage und eventuell auch hier im Forum mit der Suchfunktion

robi
 
OP
Escho
Screen ist für meinen Zweck nicht das Richtige. Nohup dagegen scheint gut als Basis für weitere Experimente dienen zu können.
Danke für den Hinweis

Edgar
 
Escho schrieb:
Nohup dagegen scheint gut als Basis für weitere Experimente dienen zu können.
Nohup fängt das Signal SIGHUP ab, dass der Parent-prozess beim Sterben an alle Kind-Prozesse schickt. Man kann natürlich auch innerhalb Kindprozess mit trap arbeiten. Hier könnte man noch andere Signale abfangen, falls das notwendig ist.
 
Oben