verkettete Befehle in den Hintergrund

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.503
Hi,

für längerdauernde Kopiervorgänge, verkette ich diese gern

Code:
cp -R SRC DST && cp -R SCR DST

um meinen server über ssh laufenzu lassen schiebe ich die vorgänge in den hintergrund

Code:
cp -R SRC DST & disown

Kann ich beides kombinieren? Also Kopiervorgänge im Hintergrund ausführen, aber nacheinander, wenn der vorhergehende abgeschlossen ist? Hätte da eine Idee, kann mir jemand sagen, ob das geht?

Code:
$(cp -R SRC DST && cp -R SCR DST) & disown

Vielen Dank für eure Hilfe
 
Alle Kopierbefehle in ein Bash-Script schreibe, Bashcript dann ausführen mit dem disown befehlt
 
ganz schön umständlich in meinem fall, da ich ständig Tab zur autovervollständigung nutze
 
Kann sein, dass die obige Syntax sogar funktioniert, aber das hier wäre die übliche Vorgehensweise (ungetestet):
Code:
(cp ... && cp ...) & disown

Mit nohup geht das ganze auch ohne Bashism:
Code:
nohup (cp ... && cp ...) &

Falls du screen bzw. tmux noch nicht kennst, das lässt sich für solche Zwecke auch verwenden.
 
klingt spannend. nohup kannte ich noch gar nicht. Es stört mich allerdings schon, dass dann irgendwo eine nohup.out angelegt wird, die ich gar nicht haben will.

screen hatte ich mir schon mal angeschaut. Da hatte ich noch die Angst, dass ich laufende screen sessions vergessen könnte und diese dann ewig auf dem server laufen und ressourcen verbrauchen, ohne, dass ich es mitbekomme.
 
lordg2009 schrieb:
stört mich allerdings schon, dass dann irgendwo eine nohup.out angelegt wird
die wird nicht angelegt, wenn du die Standardausgabe umlenkst, z.B. nach /dev/null, also im Zweifelsfall "nohup befehl >/dev/null 2>&1 &" sagen.

BTW: Auf Rechnern mit systemd in Standardkonfiguration funktioniert das nicht mehr. Da werden dir beim Ausloggen solche Jobs gekillt.
 
Zurück
Oben