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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top