bash -Skript erst beenden, wenn alle subprozesse beendet wurden

G

Gast123

Hallo Leute,

ich möchte in einem shellskript N Prozesse nacheinander starten.
Das shellskript soll sich aber erst beenden, wenn alle diese Prozesse beendet wurden.
Ist das möglich hin zu bekommen?

Bin für alle Tipps dankbar.

Schard
 
Wenn du sie hintereinander starten willst schreib sie einfach hintereinander

Code:
#!/bin/bash

sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
echo done

Falls du N Prozesse gleichzeitig nebeneinander laufen lassen willst kannst du sie parallel starten und dann mit wait warten, bis alle beendet sind

Code:
#!/bin/bash

sleep 1s &
sleep 1s &
sleep 1s &
sleep 1s &
sleep 1s &

wait
echo done
 
@marcellus

Danke!
Das ist genau das was ich suchte.
Da habe ich man bash rauf und runter gelesen, aber wait übersehen.

Danke nochmal...
 
Sowas kannst du übrigens auch in einer interactive shell machen, schau dir dazu noch "jobs", "fg" und "bg" an.
 
Danke :)
Hatte ich auch eine lange Zeit lang schon gesucht.

Hab hier zwei Skripte die paralell laufen aber das zweite nach dem ersten starten soll.
Nun kann ich das wieder umstellen damit nicht alles hintereinander abläuft :)

T-Virus
 
@marcellus

Danke, aber jobs und job controlling sind mir bekannt :)
Ich würde mich auch schon als relativ Linux erfahren bezeichnen.
Aber dieses wait hatte ich echt nicht gefunden :(

VG

Schard
 
@Schard ich kann dir echt die "SEE ALSO" section in den Manualpages empfehlen, da gibts sehr oft Referenzen, zu ähnlichen Sachen. Wenn du dich mit einem Thema beschäftigst findest du spätestens über zwei Ecken immer irgendwas neues cooles

man jobs schrieb:
SEE ALSO
Shell Execution Environment, bg, fg, kill(), wait()
 

Ähnliche Themen

systemd service mit Bash Script und Subshell in einer tmux Umgebung

Skript soll nicht doppelt laufen... kill pkill pid cron

Bash Unter- Skript unabhängig starten

Script pausieren bis Bedingung erfüllt ist

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

Zurück
Oben