Alternativement, après avoir lancé le programme, vous pouvez appuyer sur Ctrl-Z qui arrête votre programme, puis tapez
bg
qui met votre dernier programme arrêté en arrière-plan. (Utile si vous avez commencé quelque chose sans '&' et que vous le voulez toujours en arrière-plan sans le redémarrer)
nohup cmd
ne raccroche pas à la fermeture du terminal. la sortie par défaut va à nohup.out
Vous pouvez combiner cela avec l'arrière-plan,
nohup cmd &
et se débarrasser de la sortie,
nohup cmd > /dev/null 2>&1 &
vous pouvez aussi disown
une commande. tapez cmd
, Ctrl-Z
, bg
, disown
Vous pouvez simplement exécuter le script en arrière-plan :
$ myscript &
Notez que cela est différent de mettre le &
dans votre script, qui ne fera probablement pas ce que vous voulez.
Tout le monde a juste oublié disown
. Voici donc un résumé :
-
&
place le travail en arrière-plan.- Bloque la tentative de lecture de l'entrée, et
- Fait en sorte que le shell n'attende pas qu'il soit terminé.
-
disown
supprime le processus du contrôle des tâches du shell, mais le laisse toujours connecté au terminal.- L'un des résultats est que le shell ne lui enverra pas de
SIGHUP
(Si le shell reçoit unSIGHUP
, il envoie également unSIGHUP
au processus, ce qui entraîne normalement l'arrêt du processus). - Et évidemment, il ne peut être appliqué qu'aux travaux d'arrière-plan (car vous ne pouvez pas le saisir lorsqu'un travail de premier plan est en cours d'exécution).
- L'un des résultats est que le shell ne lui enverra pas de
-
nohup
déconnecte le processus du terminal, redirige sa sortie versnohup.out
et le protège duSIGHUP
.- Le processus ne recevra aucun
SIGHUP
envoyé . - Il est totalement indépendant du contrôle des travaux et pourrait en principe être utilisé également pour les travaux de premier plan (bien que ce ne soit pas très utile).
- Généralement utilisé avec
&
(comme tâche d'arrière-plan).
- Le processus ne recevra aucun