如何从 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:很明显,我举的这个例子并不是在映射你的命令。这只是功能的概述。
我想要在重新启动后,运行 两个屏幕,每个屏幕都有程序。
这是我的脚本:
#!/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:很明显,我举的这个例子并不是在映射你的命令。这只是功能的概述。