Starten Sie gnome-terminal mit mehreren virtualenv Registerkarten und Dienstleistungen, Pre-Titel
-
19-09-2019 - |
Frage
Ich arbeite an einem serverseitigen Projekt, das von mehreren Diensten besteht. Jeder Dienst wird in der interaktiven (das heißt nicht-Daemon) Modus gestartet wird, dann ist dies praktisch während der aktiven Entwicklung. Das Projekt ist in virtualenv. So ist die typische Art und Weise einen Dienst zu starten ist:
$ cd ~/to/vitualenv/subdir/where/service/code/located
$ source ../path/to/virtualenv/bin/activate
$ ./script-to-start-service
+ Set title of terminal to the service name via GUI
Es wäre ok, wenn es überhaupt 03.02 Dienstleistungen sind. Aber wir haben ein Dutzend. Und sie alle nach dem Neustart des Computers neu zu starten ist ein echten Schmerzen.
Also, was ich will, ist ein Skript, das einmal ausgeführt öffnet mir neue gnome-terminal-Fenster mit einem Dutzend Namen Registerkarten (einem pro-Service), mit Aktiv virtualenv in jedem laufenden Bündel von Dienstinstanzen in diesen Registerkarten. Das beste Ergebnis, das ich habe, so weit ist:
$ gnome-terminal --working-directory=~/to/vitualenv/subdir --window --tab --tab
-. Titel und --profile sieht aus wie ignoriert und wenn --command angegeben wird neu geöffnete Fenster geschlossen sind gerade in Moment nach dem Öffnen
Irgendwelche Ideen? Wie Aktivierung Skript beziehen, einen Titel geben und Service läuft?
P. S. Es ist nur für Entwicklungszwecke, nicht für den Einsatz auf realen Servern.
Lösung
Die folgenden Werke für mich und tun, was Sie angefordert:
gnome-terminal --working-directory=/path/to/wd --tab-with-profile=profile1 --title=title1 -e 'bash --rcfile /path/to/rcfile1.sh' --tab-with-profile=profile2 --title=title2 -e 'bash --rcfile /path/to/rcfile2.sh'
Andere Tipps
Erstellen Sie ein gnome-terminal Profil mit dem Namen "Service" (Bearbeiten> Profile> Neu).
Bearbeiten> Profil Einstellungen> Titel und Command> Führen Sie einen benutzerdefinierten Befehl statt meiner Schale, setzen Sie den benutzerdefinierten Befehl:
bash --rcfile ../path/to/virtualenv/bin/activate
Dann nutzen Sie gnome-terminal Ihre Dienste zu starten. Der folgende Befehl startet zwei Instanzen von yes
in Tabs in verschiedenen Verzeichnissen. Ich habe den Befehl in drei Linien gebrochen, aber man sollte es als eine Zeile eingeben.
gnome-terminal
--tab-with-profile=service --working-directory=/home/$USER/data --title="feelgood" --command="yes"
--tab-with-profile=service --working-directory=/code --title="negative" --command="yes no"
Statt direkt aufrufen aktivieren, Sie können eine Datei erstellen, wie Sie Ihren kundenspezifischen Befehl zu verwenden:
source ~/.bashrc
source ../path/to/virtualenv/bin/activate
Sie können auch Befehle hinzufügen (wie Verzeichnis wechseln oder den Start Ihres Service). Nur hüte dich, dass jedes Mal, wenn Sie mit diesem Profil einen Terminal öffnen, werden diese Befehle ausgeführt.