Beenden des Terminals mit "nohup ./my_script &" => "Sie haben laufende Jobs". OK zum Beenden?

12

Angenommen, ich führe Folgendes auf einer Remote-Box aus, um zu verhindern, dass der Job abgebrochen wird, wenn ich das Terminal trenne.

nohup ./my_script.sh &

Beim Versuch, mein Terminal zu verlassen, wurde folgende Warnung angezeigt:

zsh: you have running jobs

Ich nehme an, das ist in Ordnung. Es sagt mir nur, dass ich einen Job / Prozess im Hintergrund habe. Wenn ich das Terminal trenne, wird der Job / Prozess weiterhin ausgeführt. Richtig?

Amelio Vazquez-Reina
quelle
Ich habe festgestellt, dass zshs nohup kaputt ist und nicht tut, was Sie wollen. Disown funktioniert die meiste Zeit. Obwohl ich einmal ein Problem mit dem Versuch hatte, disown mit ffmpeg in zsh zu verwenden, startete ich eine Bash-Shell und ließ darin nohup laufen.
Sridhar Sarnobat

Antworten:

18

Ja das ist gut. Der untergeordnete Prozess erhält ein HUP-Signal, aber der Prozess stirbt dank Ihres nicht ab nohup.

Wenn Sie diese Nachricht nicht sehen möchten, übergeben Sie einfach die Job-ID an disown:

disown %1

Oder starten Sie den Job mit &!(zsh-spezifischer Trick):

nohup ./my_script.sh &!
alienth
quelle