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

How to start multiple screen sessions from bash script

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

这是我的脚本:

#!/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"

您还可以探索为屏幕编写 .rc 脚本的选项。这个想法是,您 运行 通过多次调用屏幕的所有命令,都捆绑到一个 'screen script' 文件中,并使用 -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" 命令我们可以在同一屏幕上看到两个脚本的输出:

我发现它也很有用。

希望对您有所帮助, 亚雷克

PS:很明显,我举的这个例子并不是在映射你的命令。这只是功能的概述。