web-dev-qa-db-fra.com

Commande pour quitter puis relancer gnome-terminal qui peut être exécutée depuis gnome-terminal?

Je me demandais s'il était possible de redémarrer en quelque sorte gnome-terminal de lui-même? Ce que je veux dire par là, est-ce qu'il y a une commande que je peux utiliser pour dire à gnome-terminal pour fermer puis se relancer immédiatement? J'ai essayé de courir:

exit && gnome-terminal

Mais cela ne fonctionne pas car après sa sortie, il ne peut pas se lancer lui-même, donc je me demandais s'il y avait une autre commande qui le fermerait mais aussi demander à un autre programme de l'ouvrir immédiatement à nouveau?


Informations sur le système d'exploitation:

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

Informations sur le package:

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
user364819

Vous devez "détacher" la fenêtre de terminal nouvellement créée. Maintenant, quelle commande cela fait-il? Nohup ou setsid

Nohup gnome-terminal && exit

setsid gnome-terminal && exit

4

trap le pseudo-signal EXIT:

trap 'gnome-terminal' EXIT

Maintenant, chaque fois que vous exécutez exit une nouvelle instance de gnome-terminal sera ouvert par Shell et la session existante de Shell sera terminée.


Comme l'a souligné @Byte Commander, si vous faites exit (comme vous le faisiez) ou appuyez sur Ctrl + D pour quitter le Shell, ce qui précède créerait un gnome-terminal fenêtre avec le même PID que le précédent (bien que le Shell obtienne un PID différent), ce comportement est voulu par la conception même du produit. Donc, pour tuer le courant gnome-terminal traiter et démarrer un nouveau, vous pouvez faire:

trap 'kill $(ps -o ppid= $$) && gnome-terminal' EXIT
6
heemayl