Domanda

Sto lavorando su un progetto di lato server che si compone di diversi servizi. Ogni servizio viene eseguito in modalità interattiva (cioè non-daemon), questo è utile durante la fase di sviluppo attivo. Il progetto è in virtualenv. Così il tipico modo per avviare un servizio è:

$ 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

Sarebbe ok se ci fossero 2-3 servizi a tutti. Ma abbiamo una dozzina. E il riavvio tutti loro dopo il riavvio del computer è un vero e proprio dolore.

Quindi quello che voglio è uno script, che, una volta eseguito mi si apre una nuova finestra gnome-terminal con una dozzina di schede di nome (uno per il servizio), con virtualenv attivato in ciascuno e in esecuzione gruppo di istanze di servizio in quel schede. Il miglior risultato che ho finora è:

$ gnome-terminal --working-directory=~/to/vitualenv/subdir --window --tab --tab

-. Titolo e --profile si presenta come stato ignorato e se --comando si specifica finestra appena aperta è chiusa proprio nel momento in cui, dopo aperto

Tutte le idee? Come sorgente dello script di attivazione, dare un titolo, ed eseguire il servizio?

P.S. E 'per scopi di sviluppo, non per l'implementazione su server reali.

È stato utile?

Soluzione

I seguenti lavori per me e fare ciò che avete richiesto:

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'

Altri suggerimenti

Crea il tuo profilo gnome-terminal denominato "servizio" (Modifica> Profili> Nuovo).

In Modifica> Preferenze> Profilo Titolo e comando> esegue un comando personalizzato al posto del mio guscio, impostare il comando personalizzato a:

bash --rcfile ../path/to/virtualenv/bin/activate

Quindi utilizzare gnome-terminal per lanciare i propri servizi. Il seguente comando lancia due istanze di yes in schede in diverse directory. Ho rotto il comando in tre linee, ma si deve inserire come una riga.

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"

Invece di chiamare direttamente attivare, si consiglia di creare un file da utilizzare come comando personalizzato:

source ~/.bashrc
source ../path/to/virtualenv/bin/activate

È inoltre possibile aggiungere i comandi (come cambiare directory o lanciare il vostro servizio). Fate attenzione che ogni volta che si apre un terminale con tale profilo, vengono eseguiti i comandi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top