Comment puis-je garder le terminal gnome ouvert après la fermeture d'un programme?

5

J'ai le raccourci suivant qui ouvre une instance SSH. Comment puis-je le modifier pour que, à la fermeture de SSH, le terminal reste ouvert?

[Desktop Entry]
Terminal=true
Type=Application
Name[en_US]=ssh
Icon=/logo_sprite.png
Exec=gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash -c "ssh -t -i ~/dsa.key [email protected] sudo -s"'
    
posée Rostyslav Malenko 01.06.2015 - 00:21
la source

3 réponses

6

1. Première option: éditer les paramètres de gnome-terminal

Dans gnome-terminal , allez dans les préférences, l'onglet "Titre et commande". Cliquez ensuite sur la liste déroulante "Lorsque la commande se termine", choisissez "Garder le terminal ouvert".


2. Si vous préférez ne pas avoir d'effet sur tous les terminaux

Vous pouvez ajouter bash comme dernière commande. Dans mon test,

Exec=gnome-terminal -e 'bash -c "gedit; echo Monkey; bash"'

a fait le travail. Dans votre commande, vous devez probablement le faire comme:

Exec=gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash -c "ssh -t -i ~/dsa.key [email protected] sudo -s; bash"'


3. Gardez le terminal ouvert jusqu'à ce que vous appuyiez sur Entrée

Une autre option consiste à placer read line à la fin de vos commandes. Dans ce cas, le terminal restera ouvert jusqu'à ce que vous ayez appuyé sur Enter

De mon test:

Exec=gnome-terminal -e 'bash -c "gedit; echo Monkey; read line"'

Ou dans votre commande probablement:

Exec=gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash -c "ssh -t -i ~/dsa.key [email protected] sudo -s; read line"'

Notes

  • Notez que ce lanceur "ouvrira" les autres fenêtres du lanceur d’application de gnome-terminal dans le lanceur Unity, car ce lanceur appelle gnome-terminal dans sa commande "main". Cleaner serait d'ajouter la commande en tant que raccourci vers le lanceur gnome-terminal existant (ou tout autre lanceur que vous souhaitez).
  • Comme la commande dans le lanceur appelle déjà gnome-terminal , vous n'avez pas besoin de définir Terminal=true .
réponse donnée Jacob Vlijm 01.06.2015 - 06:57
la source
1

J'ai joué avec ce code pendant quelques minutes. Je pense avoir trouvé une solution. Voici mon code (un peu trop simplifié en ce qui concerne les détails):

[Desktop Entry]
Terminal=true
Type=Application
Name[en_US]=ssh
Exec=gnome-terminal -e 'bash -c "ssh"' && gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash'

J'espère que ça aide!

Je viens d’ajouter une ligne de code exécutant gnome-terminal avec raw bash à l’aide de & amp; & amp; commande.

EDIT: Je viens de réaliser que quelqu'un l'avait déjà résolu !! Oups!

    
réponse donnée Julien deC 01.06.2015 - 18:53
la source
0

Vous pouvez le faire en ajoutant simplement la variable "$ SHELL" à la fin de votre commande. Voir l'exemple ci-dessous dans la ligne Exec = ....

[Desktop Entry]
Type=Application
Terminal=true
Name=MDS Control
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c 'Your command;$SHELL'"
Categories=Application;
Name[en_US]=MDS-Control
    
réponse donnée Md. Zahangir Alam 14.06.2017 - 11:16
la source

Lire d'autres questions sur les étiquettes