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é.
-
disownsupprime 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 unSIGHUPau 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
-
nohupdéconnecte le processus du terminal, redirige sa sortie versnohup.outet le protège duSIGHUP.- Le processus ne recevra aucun
SIGHUPenvoyé . - 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