在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>。但这不起作用。请帮帮我。 谢谢!

+0

在屏幕'session-1'内是否已经创建了窗口'1'和'2'? – Armali

+0

是的,我有10个窗口在会话1,我想运行10脚本。 –

我有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'