我需要启动多个在 shell 中运行的应用程序并监控它们的执行情况。目前我有一个主脚本,用于在新的 gnome 控制台中启动所有应用程序,但我更愿意在分屏的同一个窗口中启动它们。
这个帖子一个窗口中有多个 shell解释了如何使用分屏与多种类型的控制台应用程序(如屏幕、终结者和 byobu)。手动操作效果很好,但我希望能够从主脚本自动在分屏控制台中启动所有应用程序。在上述工具的文档中,我找不到任何可以从脚本自动实现这一点的方法。
有任何想法吗?
答案1
您可以创建一个自定义屏幕配置文件,它将打开多个分屏并在其中启动您的脚本。它看起来应该像这样:
screen script1.sh # Open first screen and launch first script
split # Make second split
focus # Switch to second split
screen script2.sh # Open second screen and launch second script
split # Make third split
focus # Switch to third split
screen script3.sh # Open third screen and launch third script
将其放入名为 myscripts 的文件中,然后使用 启动屏幕screen -c myscripts
。如果您喜欢垂直分割,只需将 -v 添加到 split 命令中。
如果您想要网格布局,请尝试如下操作:
screen script1.sh # Open first screen and launch first script
split -v # Make second split
focus # Switch to second split
screen script2.sh # Open second screen and launch second script
split # Make third split
focus # Switch to third split
screen script3.sh # Open third screen and launch third script
focus # Cycle back to first split
split # Split first split horizontally
focus # Switch to new split
screen script4.sh # Open fourth screen and launch fourth script
答案2
我知道这是一个老问题,但值得一提的是,这个工具可以很好地满足您的需要:
https://github.com/pvolok/mprocs
它在一个终端中运行所有需要的进程并允许控制它们(终止、停止、启动、重启)。非常适合运行本地服务器(flask、expressJS 等)
例子:
mprocs "sleep 5" "sleep 2" vi