Запустите gnome-терминал с несколькими вкладками и сервисами virtualenv, предварительно озаглавленными - PullRequest
0 голосов
/ 09 ноября 2009

Я работаю над серверным проектом, который состоит из нескольких сервисов. Каждый сервис запускается в интерактивном (т.е. не демоновом) режиме, это удобно при активной разработке. Проект в виртуальности. Таким образом, типичный способ запуска службы:

$ 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

Было бы хорошо, если бы вообще было 2-3 службы. Но у нас есть дюжина. И перезапуск их после перезагрузки компьютера - настоящая боль.

Итак, мне нужен скрипт, который после запуска откроет мне новое окно терминала gnome с дюжиной именованных вкладок (по одной на службу) с активированным virtualenv в каждой и запущенной группе экземпляров службы на этих вкладках. Лучший результат, который я получил на данный момент:

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

- заголовок и --profile выглядят так, как будто они были проигнорированы, и, если задана опция --command, вновь открытое окно закрывается сразу после открытия.

Есть идеи? Как получить сценарий активации, дать заголовок и запустить сервис?

P.S. Это только для целей разработки, а не для развертывания на реальных серверах.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2009

Следующее работает для меня и делает то, что вы просили:

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'

0 голосов
/ 22 февраля 2011

Создайте профиль терминала gnome с именем «service» («Правка»> «Профили»> «Новый»).

В меню «Правка»> «Настройки профиля»> «Заголовок и команда»> «Запустить пользовательскую команду вместо моей оболочки» установите для пользовательской команды значение:

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

Затем используйте gnome-терминал для запуска ваших сервисов. Следующая команда запускает два экземпляра yes на вкладках в разных каталогах. Я разбил команду на три строки, но вы должны ввести ее одной строкой.

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"

Вместо прямого вызова активации вы можете создать файл для использования в качестве пользовательской команды:

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

Вы также можете добавлять команды (например, изменить каталог или запустить свой сервис). Просто помните, что каждый раз, когда вы открываете терминал с этим профилем, эти команды выполняются.

...