web-dev-qa-db-fra.com

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

J'ai le raccourci suivant qui ouvre une instance SSH. Comment puis-je le modifier pour que, lorsque SSH se ferme, 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"'
5

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

Dans gnome-terminal, accédez aux préférences, dans l'onglet "Titre et commande". Cliquez ensuite sur la liste déroulante "Une fois la commande terminée", choisissez "Garder le terminal ouvert".

enter image description here


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

Vous pouvez ajouter bashname__en tant que dernière commande. Dans mon test,

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

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

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


3. Laissez 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 reste ouvert jusqu'à ce que vous appuyiez 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"'

Remarques

  • Notez que ce programme de lancement "connecte" d'autres fenêtres possibles à partir du programme de lancement d'applications de gnome-terminal dans Unity Launcher, car ce programme de lancement appelle gnome-terminal dans sa commande "main". Plus propre serait d’ajouter la commande en tant que raccourci au lanceur existant gnome-terminal (ou à tout autre lanceur de votre choix).
  • Étant donné que la commande du programme de lancement appelle déjà gnome-terminal, vous n'avez pas besoin de définir Terminal=true.
7
Jacob Vlijm

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

[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
1
Md. Zahangir Alam

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 cela t'aides!

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

EDIT: Je viens de me rendre compte que quelqu'un l'a déjà résolu !! Oops!

1
Julien deC