Vous êtes ici

Exécuter une commande shell asynchrone sous GNU/Linux

C'est tout bête mais ça peut vous sauver la vie ! En tout cas si vous avez une grosse compilation à lancer, une copie de fichiers de plusieurs gigas et que vous ne comptez pas rester planté là devant votre PC. A vrai dire, c'est surtout utile quand vous "avez la main" sur un serveur en SSH par exemple.

Cessons de tergiverser, je vais tenter de faire vite et bien. Pour lancer une commande asynchrone qui ne s'arrêtera pas quand vous fermerez le shell ou la session SSH, il vous suffit de l'encapsuler entre les termes "nohup" et "&", comme cela pour une copie de fichiers :


nohup cp /mon/gros/repertoire /la/destination &

Saisi ? Alors vous pouvez éventuellement ajouter une petite subtilité qui évitera de prendre tout les ressources système durant l'opération : nice (oui c'est plus joli comme ça ^_^), ça donnera donc pour une compilation :


nohup nice ./make &

Maintenant vous pouvez fermer le shell ou la session ssh. Et si vous voulez connaître le résultat de la commande plus tard, retournez dans le dossier ou vous avez lancé la commande et faite un


more nohup.out