führen Sie ein shell-Skript, und sofort hintergrund, trotzdem die Möglichkeit zu prüfen, die seine Ausgabe
Wie kann ich ein shell-Skript, und sofort hintergrund, trotzdem die Möglichkeit zu prüfen, die seine Ausgabe jederzeit durch tailing /tmp/output.txt
Wäre es schön, wenn ich kann Vordergrund der Prozess auch später.
PS Es wäre echt cool, wenn du auch mir zeigen, wie das "senden" der hintergrund-Prozess, der in einem gnu-Bildschirm, die möglicherweise oder möglicherweise nicht initialisiert wurde.
InformationsquelleAutor american-ninja-warrior | 2017-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
'Hintergrund' einen Prozess, wenn Sie es starten
Fügen Sie einfach ein kaufmännisches und-Zeichen (
&
) nach dem Befehl.Wenn das Programm schreibt in die Standardausgabe, es wird immer noch schreiben, die an die Konsole/terminal.
Vordergrund-Prozess, verwenden Sie einfach die
fg
Befehl.(Sie können eine Liste der jobs, die im hintergrund mit
jobs
.)Beispiel:
sh -c "sleep 3 && echo ich gerade aufgewacht' & jobs
Hintergrund eines aktuell ausgeführten Prozesses
Wenn Sie bereits begonnen haben, den Prozess in den Vordergrund, aber Sie wollen, um es in den hintergrund, können Sie Folgendes tun:
bg
Befehl, um den Prozess Fort, aber es laufen im hintergrund, anstatt im Vordergrund.bg
Befehl ..." )Gute Antwort. Nebenbei: können Sie mehr, senden Sie einfach
(sleep 3 && 'echo I just woke up') &
) oder group-Befehl ({ sleep 3 && echo 'I just woke up'; } &
). Um eine Umleitung Teil des hintergrund-Befehls, setzen Sie vor die&
; z.B.(sleep 3 && echo 'I just woke up') >/tmp/output.txt &
Gute Tipps, @mklement0. Sollte ich gedacht haben, zu verwenden
;
in meinem Beispiel, da ich nicht Sorge über den Erfolg/Misserfolg Zustandsleep
.Etwas, das nicht erwähnt wurde: wenn Sie nicht möchten, dass die Ausgabe des hintergrund-Befehls zu gehen, um zu Ihrem terminal (nicht umgeleitet) tun
stty tostop
und der Prozess erhält eineSIGTTOU
- signal, das können Siefg
und finden Sie den Ausgang.InformationsquelleAutor Jon Wolski
Andere Möglichkeit ist, über die
nohup
Befehl mit&
am Ende der Zeile.Sowas
Diese läuft im hintergrund und sendet seine Ausgabe in eine nohup.log-Datei.
InformationsquelleAutor israelss