Команда для выхода, а затем перезапуск gnome-терминала, который может быть выполнен из gnome-терминала?

Мне было интересно, можно ли отчасти перезапустить gnome-terminal? Я имею в виду, что есть ли команда, которую я могу использовать, чтобы сказать gnome-terminal, чтобы закрыть, а затем немедленно перезапустить себя? Я попытался запустить:

exit && gnome-terminal

Но это не работает, потому что после выхода из него он не может запускаться сам по себе, поэтому мне было интересно, есть ли еще одна команда, которая закроет ее, но также

Информация о ОС:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 15.10
Release:    15.10
Codename:   wily
Flavour: GNOME
GNOME Version: 3.18

Информация о ОС:

]
gnome-terminal:
  Installed: 3.18.2-1ubuntu2~wily1
  Candidate: 3.18.2-1ubuntu2~wily1
  Version table:
 *** 3.18.2-1ubuntu2~wily1 0
        500 http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu/ wily/main amd64 Packages
        100 /var/lib/dpkg/status
     3.16.2-1ubuntu4 0
        500 http://archive.ubuntu.com/ubuntu/ wily/main amd64 Packages
1
задан 2 December 2015 в 23:35

1 ответ

trap псевдосигнал EXIT:

trap 'gnome-terminal' EXIT

Теперь каждый раз, когда вы запускаете exit, новый экземпляр gnome-terminal будет открыт оболочкой, а существующий сеанс оболочки будет

Как заметил @Byte Commander, если вы делаете exit (как вы делали) или нажмите Ctrl + D, чтобы выйти из оболочки, создайте окно gnome-terminal с тем же PID, что и предыдущий (хотя оболочка получит другой PID), это поведение по дизайну. Чтобы убить текущий gnome-terminal процесс и запустить новый, вы можете сделать:

trap 'kill $(ps -o ppid= $$) && gnome-terminal' EXIT
6
ответ дан 23 May 2018 в 15:20
  • 1
    Приятно, но это только перезапуск gnome-terminal-server (я проверяю его на PID в xterm до и после этого, чтобы определить это), если вы закроете окно gnome-terminal. Это не происходит, если вы запустите exit или введите CTRL + D в окне. – Byte Commander 2 December 2015 в 23:50
  • 2
    Ваше редактирование, кажется, говорит противоположность моего комментария? Если первое окно закрывается, потому что оболочка завершается (например, при запуске exit), ваша ловушка открывает новое окно gnome-terminal перед закрытием первого и, следовательно, основной экземпляр gnome-terminal-server остается прежним и не перезапускается. Он перезапускается только в том случае, если первое окно было закрыто завершением экземпляра gnome-terminal, например. щелкнув по окну (X). – Byte Commander 2 December 2015 в 23:56
  • 3
    @ByteCommander Это редактирование не было направлено на вас. В любом случае, хорошо поймайте .. читай мои правки .. – heemayl 3 December 2015 в 01:38

Другие вопросы по тегам:

Похожие вопросы: