jeudi 22 décembre 2016

Problématique: comment cacher le terminal après le lancement d'une commande?


Comment cacher (pas arrêter, hein!) le Terminal après le lancement de ma commande...

Je lance -par exemple- mon serveur local à l'aide d'un raccourci sur mon Bureau (lanceur). Oui, mais voilà, le terminal reste visible dans la barre des tâches ce qui fait que je peux le fermer machinalement et donc arrêter involontairement mon serveur local. Ça peut être aussi le cas si vous lancez votre VPN (openVPN) en ligne de commande et probablement bien d'autres commandes... Par contre, ça fonctionne mieux avec une simple commande qu'avec les commandes multiples comme ci-dessous. Je précise aussi que mon terminal par défaut est Gnome-Terminal ou Mate-Terminal (quasiment identique) et qu'ils sont paramétrés pour que le Terminal reste ouvert à la fin d'une commande. Les résultats peuvent donc être différents avec d'autres paramètres.


Il y a 2 solutions simples:

  1. mettre "nohup" devant votre commande (n'a pas marché chez moi peut-être parce que c'était une commande multiple avec sh -c "commande1 && commande2"). Voir plus bas la solution trouvée.
  2. mettre une "esperluette" (&) derrière votre commande, comme ci-dessous:


 sh -c "cd /home/USERNAME/Partage && python -m SimpleHTTPServer &" 


On sera tout de même obligé de fermer la fenêtre du terminal "à la main" mais cela n'arrêtera pas le serveur pour autant. Je réfléchis toutefois à une solution plus satisfaisante.


Nouvel essai avec "nohup"

j'ai essayé plusieurs positions de nohup et c'est celle-ci qui fonctionne pour une commande multiple.


 sh -c "cd /home/USERNAME/Partage && nohup python -m SimpleHTTPServer" 


Essai maintenant avec une de mes commande de changement de VPN

 sh -c "sudo killall openvpn; nohup sudo openvpn /etc/openvpn/usa.ovpn" 

Résultat: le VPN s'arrête quand on ferme la fenêtre du Terminal. C'est pas bon...


Peut-être à suivre....

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.