我正在开发一个由多个服务组成的服务器端项目。每个服务都以交互式(即非守护进程)模式运行,这在主动开发时很方便。该项目是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看起来被忽略了,如果指定了--command,那么新打开的窗口会在打开后立即关闭。
有什么想法吗?如何获取激活脚本,提供标题并运行服务?
P.S。它仅用于开发目的,不适用于在真实服务器上部署。
答案 0 :(得分:2)
以下内容适用于我并按您的要求执行操作:
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'
答案 1 :(得分:0)
创建名为“service”的gnome-terminal个人资料(编辑>个人资料>新)。
在编辑>个人资料首选项>标题和命令>运行自定义命令而不是我的shell,将自定义命令设置为:
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
您还可以添加命令(例如更改目录或启动服务)。请注意,每次打开具有该配置文件的终端时,都会执行这些命令。