在CentOS的特定屏幕上执行命令
问题描述:
我在CentOS上使用屏幕来运行我的脚本。例如:在CentOS的特定屏幕上执行命令
输出命令屏幕-ls:
There is a screen on:
session-1 (Detached)
1 Socket in /var/run/screen/S-root
我运行:
screen -r -S "session-1" -d -m -p 0 /tmp/script1.sh
screen -r -S "session-1" -d -m -p 1 /tmp/script2.sh
screen -r -S "session-1" -d -m -p 2 /tmp/script3.sh
,但它不能正常工作。我想在屏幕上运行script1.sh:0,script1.sh在屏幕上运行:1,script1.sh在屏幕上运行:2,...与选项-p <screen number>
。但这不起作用。请帮帮我。 谢谢!
答
我有10个窗口在会话1,我想运行10脚本。
由于session-1
及其窗口已经创建,我们不需要选项-d -m
。另外,选项-r -S
我们只需要一个。要在已有的会话中执行程序,我们需要选项-X exec …
。因此,所产生的命令是这样的:
screen -r session-1 -p 0 -X exec /tmp/script1.sh
但是,当我试图与4.0版本screen
,该方案是在当前(最后使用)窗口中执行,而不是由-p
指定的窗口。显然-p
不适用于-X
。工作是什么:
screen -r session-1 -p 0 -X stuff /tmp/script1.sh$'\n'
screen -r session-1 -p 1 -X stuff /tmp/script2.sh$'\n'
screen -r session-1 -p 2 -X stuff /tmp/script3.sh$'\n'
在屏幕'session-1'内是否已经创建了窗口'1'和'2'? – Armali
是的,我有10个窗口在会话1,我想运行10脚本。 –