Détacher une commande à l'aide de 'nohup'
Ceux qui ont l'habitude d'utiliser la ligne de commande sous GNU/Linux savent que l'on peut lancer ses applications (navigateur, traitement de texte, petit script perso) tout en les détachants du terminal qui les à lancé, afin de pouvoir garder la main afin de saisir d'autres commandes.
Ceci se fait à l'aide du caractère '&', par exemple:
$ mon_application &
Cependant, il arrive que l’on ferme le terminal par inadvertance, ou lorsque le timeout de connexion tombe alors que l'on était connecté à distance sur le terminal, pour avoir comme effet d’arrêter toutes les applications lancées à partir de ce terminal, suite à la déconnexion de notre utilisateur.
Pour remédier à ce problème, il existe la commande 'nohup' qui permet au processus de rester actif même après la déconnexion de l'utilisateur.
$ nohup mon_application &
Par défaut, cette commande à pour effet de créer un fichier de sortie appelé 'nohup.out' contenant la sortie standard de la commande passée en paramètre. Ceci peut être problématique dans certains cas où le programme est lancé via un script, ce qui peut dans certains cas générer des fichiers de sortie très conséquents en taille mémoire.
On peut supprimer ce comportement en redirigeant tous les flux vers /dev/null, c'est à dire vers le 'trou noir' d'où rien ne ressort jamais :
$ nohup mon_application &>/dev/null &
Pour en savoir plus:
http://fr.wikipedia.org/wiki/Nohup