Вопрос Как я могу сохранить гном-терминал открытым после закрытия программы?


У меня есть следующий ярлык, который открывает экземпляр SSH. Как я могу изменить его, чтобы при закрытии SSH терминал оставался открытым?

[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 cle@12.210.9.17 sudo -s"'

5
2018-05-31 22:21


происхождения




ответы:


1. Первый вариант: изменить настройки gnome-terminal

В gnome-terminal, перейдите в настройки, вкладку «Название и команда». Затем щелкните раскрывающийся список «Когда команда завершается», выберите «Keep terminal open».

enter image description here


2. Если вы предпочитаете не влиять на все терминалы

Можете добавить bashкак последняя команда. В моем тесте,

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

выполнил эту работу. В вашей команде вы, вероятно, должны сделать это, как:

Exec=gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash -c "ssh -t -i ~/dsa.key cle@12.210.9.17 sudo -s; bash"'


3. Держите терминал открытым, пока не нажмете Enter.

Другой вариант - разместить read line в конце ваших команд. В этом случае терминал будет оставаться открытым до тех пор, пока вы не Войти

Из моего теста:

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

Или, возможно, в вашей команде:

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

Заметки

  • Обратите внимание, что эта пусковая установка будет «стальной», возможно, другие окна из gnome-terminalв пусковом устройстве Unity Launcher, поскольку эта программа запускает gnome-terminalв своей «основной» команде. Чистое было бы добавить команду как ярлык к существующему gnome-terminal (или любой другой пусковой установки, который вы хотите).
  • Поскольку команда в панели запуска уже вызывает gnome-terminal, вам не нужно устанавливать Terminal=true,

6
2018-06-01 04:57



Но это влияет на все терминалы. - A.B.
@ A.B. Это так, но это проблема? - Jacob Vlijm
Я бы сказал, да. - A.B.
@ A.B. добавлен другой вариант. - Jacob Vlijm
Почему бы не создать специальный профиль с "not quit as command end" и вызвать этот профиль с помощью gnome-terminal --profile=myprofilenoendcmd ? - solsTiCe


Я играл с этим кодом несколько минут. Думаю, я нашел решение. Вот мой (немного упрощенный, когда дело доходит до деталей) код:

[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'

Надеюсь это поможет!

Я просто добавил строку кода, выполняющую gnome-terminal с raw bash, используя команду &&.

EDIT: Я только понял, что кто-то уже решил это! К сожалению!


1
2018-06-01 16:53





Вы можете сделать это, просто добавив переменную $ SHELL в конце вашей команды. Пример в 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

1
2018-06-14 09:16