【发布时间】:2017-05-19 17:12:59
【问题描述】:
我需要在VM(Ubuntu 14.04) 中运行多个服务器。我正在使用屏幕来执行此操作。现在,每次我关闭虚拟机时,我都必须重新启动屏幕。因此,我正在编写一个 shell 脚本来自动执行此操作。以下是我现在的脚本
#!/usr/bin/env bash
# Create a screen in detached mode and set default title
screen -d -m -S screenName -t "DjangoServer"
# Start django app in window 0
# Source environment variables for screen shell.
# TODO: Check if this is required.
screen -S screenName -X stuff $"source ~/.profile\n"
# Start virtual environment(virt_env command) exported via ~/.profile
screen -S screenName -X stuff $"virt_env\n"
# Run Django app using grunt
screen -S screenName -X stuff $"grunt\n"
# Start node app in window 1
screen -S screenName -X screen -t "NodeAPI"
screen -S screenName -p 1 -X stuff $"cd /vagrant/node-app\n"
screen -S screenName -p 1 -X stuff $"npm start\n"
# Start a screen running a shell, simply
screen -S screenName -X screen -t "bash"
我是 shell 脚本的新手,我确信一定有更好的方法来做到这一点。谁能告诉我怎么做。由于命令很少,我不倾向于为要在屏幕窗口中运行的命令编写 shell 脚本。但如果这是标准方式,请建议如何做。 TIA。
编辑
我也不想修改.screenrc。
【问题讨论】:
-
请搜索。只花了几秒钟。 unix.stackexchange.com/questions/74785/…
-
我已经浏览了您在上面发布的链接。我的部分尝试受到那里方法的影响。我不想更改
.screenrc。我忘了提那个。但是,是的,我确实花了 2 个小时来搜索它。希望它现在满足你的利他主义:D -
为什么不想修改
.screenrc?这是完成您正在尝试做的事情的最佳方式。创建额外的配置文件以便您可以运行screen -c some-other-screenrc是否可以接受(注意这些配置文件可以通过source ...包含您的主要.screenrc)? -
我不想修改
.screenrc只是因为我认为,也许是因为我不完全理解,可能有更好的方法来做到这一点。每次在我们需要做这类事情的每台机器上,在 VM 中修改.screenrc对我来说听起来并不好。此外,screen 实用程序通过它提供的命令已经拥有太多的自定义范围。我认为我不能仅仅利用它。希望看到配置文件的方法。
标签: shell unix gnu-screen