Quitter le terminal exécutant «nohup ./my_script &» => «Vous avez des travaux en cours». OK pour sortir?

12

Supposons que j'exécute ce qui suit sur une boîte distante avec l'idée d'empêcher la mort du travail lorsque je déconnecte le terminal.

nohup ./my_script.sh &

Lorsque j'essaie de quitter mon terminal, j'ai reçu l'avertissement suivant:

zsh: you have running jobs

Je suppose que ça va. Cela me dit simplement que j'ai un travail / processus en cours en arrière-plan. Si je déconnecte le terminal, le travail / processus continuera de s'exécuter, n'est-ce pas?

Amelio Vazquez-Reina
la source
J'ai trouvé que le nohup de zsh est cassé et ne fait pas ce que vous voulez. Disown fonctionne la plupart du temps. Bien qu'une fois j'ai eu un problème en essayant d'utiliser disown avec ffmpeg dans zsh, j'ai donc démarré un shell bash et exécuté nohup à l'intérieur.
Sridhar Sarnobat

Réponses:

19

Oui c'est bien. Le processus enfant recevra un signal HUP, mais le processus ne mourra pas grâce à votre nohup.

Si vous ne voulez pas voir ce message, passez simplement l'ID du travail à disown, comme ceci:

disown %1

Ou, démarrez le travail avec &!(astuce spécifique à zsh):

nohup ./my_script.sh &!
alienth
la source