如何从bash脚本开始多个屏幕会话

时间:2018-08-08 06:52:22

标签: bash ubuntu sh gnu-screen

我想在重启后运行两个屏幕,每个屏幕中都有程序。

这是我的剧本:

#!/bin/sh
echo Killing all existing screens...

screen -X -S launcher quit
sleep 2
screen -X -S server quit


echo Loading launcher screen...
screen -S launcher -d -m bash -c  "/home/test/Launcher.exe"
sleep 2
echo Loading server screen...
screen -S server -d -m bash -c  "/home/test/server/server/Server.exe"
echo All done.

只有第一个启动并运行正常。我已经尝试过拆分它们,但是仍然没有运气。 我有Ubuntu Server 15.10 64位/ Linux 4.2.0-42-通用)

2 个答案:

答案 0 :(得分:1)

解决了首次启动后在屏幕上启动应用程序的问题:

screen -dmS launcher
screen -S launcher -X screen  "/home/test/Launcher.exe"
screen -dmS server
screen -S server -X screen "/home/test/server/server/Server.exe"

答案 1 :(得分:1)

您还可以探索为屏幕编写.rc脚本的选项。这个想法是,所有由屏幕多次调用运行的命令,都捆绑到一个“屏幕脚本”文件中,并使用-c启动,例如:

$ cat screen.rc
startup_message off

screen -t "Pilot" ./pilot_tunel.sh
split
focus
screen -t "AT TB1" ./at_tb1_tunnel.sh
focus

然后启动它:

$ screen -c screen.rc

我以某种方式发现它更干净。

也可以通过屏幕的“ split”命令在同一屏幕上看到两个脚本的输出:

enter image description here

我发现它也很有用。

我希望它会有所帮助, Jarek

PS:显然,我给出的示例未映射您的命令。只是功能概述。