我想在屏幕会话中启动一些应用程序,但是要从脚本启动。
如果没有脚本,我将启动屏幕,然后使用crtl-ac打开N个窗口并在每个窗口中执行程序。
我尝试了以下
screen -d -m -S test
screen -S test -X exec tail -f /var/log/messages
screen -S test -X screen
screen -S test -X exec tail -f /var/log/xinetd.log
但是,当我附加会话尾巴没有运行。如果我紧接会话screen -d -m -S startup
并在screen -S startup -X exec tail -f /var/log/messages
另一个终端上运行,它将起作用。
我错过了什么 ?
在AlexD回答后进行编辑:
半有效的解决方案是
screen -d -m -S test tail -f /var/log/messages
screen -S test -X screen tail -f /var/log/xinetd.log
在exec时,将屏幕命令(-X后面的命令)链接到该命令是可行的,这不太可能是因为exec希望定义一个当前窗口,而在屏幕分离时没有当前窗口。感谢AlexD提供了这些技巧。
但是有一个怪异的副作用:当程序停止时(如果您附加了屏幕会话,然后crtl-c拖尾或杀死尾巴),屏幕窗口将关闭。
因此,其行为与Crtl-A c不同,并运行命令。
另一个副作用是,您无法链接2条命令
screen
总是终止时,与该命令发起端-它是工具的正常功能:) ..所以,如果你运行screen top
,当您退出top
,screen
将退出,太