如何从bash脚本启动多个屏幕会话

如何从bash脚本启动多个屏幕会话,bash,ubuntu,sh,gnu-screen,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 Loa

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

这是我的剧本:

#!/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服务器15.10 64位/Linux 4.2.0-42-generic)

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

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"

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

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"

您还可以探索为screen编写.rc脚本的选项。其思想是,通过多次调用screen运行的所有命令,都捆绑到一个“screen脚本”文件中,并使用-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
不知怎么的,我发现它干净了一点

另外,通过screen的“split”命令,我们可以在同一屏幕中看到两个脚本的输出:

我发现它也很有用

我希望这会有帮助, 贾勒克


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

您还可以探索为屏幕编写.rc脚本的选项。其思想是,通过多次调用screen运行的所有命令,都捆绑到一个“screen脚本”文件中,并使用-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
不知怎么的,我发现它干净了一点

另外,通过screen的“split”命令,我们可以在同一屏幕中看到两个脚本的输出:

我发现它也很有用

我希望这会有帮助, 贾勒克


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

脚本是否会导致错误?如果脚本停止、存在或分离(如进入后台),屏幕将终止。也许可以尝试在后台启动新进程?在启动新屏幕的每个命令末尾添加
&
。可能是脚本导致错误吗?如果脚本停止、存在或分离(如进入后台),屏幕将终止。也许可以尝试在后台启动新进程?在启动新屏幕的每个命令末尾添加
&
。您还可以探索为屏幕编写.rc脚本的选项。其思想是,通过多次调用screen运行的所有命令,都捆绑到一个“screen脚本”文件中,并使用-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-------不知何故,我发现它有点干净。您还可以探索为screen编写.rc脚本的选项。其思想是,通过多次调用screen运行的所有命令,都捆绑到一个“screen脚本”文件中,并使用-c启动,例如:$cat screen.rc startup_message off screen-t“Pilot”。/Pilot_tunel.sh split focus screen-t“AT TB1”/在tunnel.sh focus-------然后启动它:$screen-cscreen.rc-------不知怎的,我发现它有点干净了。