Запустите gnome-терминал с несколькими вкладками virtualenv и сервисами, предварительно озаглавленными

StackOverflow https://stackoverflow.com/questions/1700995

Вопрос

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

$ 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-terminal с дюжиной именованных вкладок (по одной на службу), с активированным virtualenv в каждой и запущенной кучей экземпляров службы на этих вкладках.Лучший результат, который я получил на данный момент, это:

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

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

Есть какие-нибудь идеи?Как создать исходный скрипт активации, присвоить название и запустить службу?

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

Это было полезно?

Решение

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

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'

Другие советы

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

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

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

Затем используйте gnome-terminal для запуска ваших сервисов.Следующая команда запускает два экземпляра 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"

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top