在CentOS上的特定屏幕上执行命令

时间:2016-08-02 10:03:05

标签: linux centos gnu-screen

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

1 个答案:

答案 0 :(得分:1)

  

我在session-1中有10个窗口,我想运行10个脚本。

由于session-1及其窗口已经创建,我们不需要选项-d -m。此外,在选项-r -S中,我们只需要一个。要在现有会话中执行程序,我们需要选项-X exec …。因此,生成的命令将如下:

screen -r session-1 -p 0 -X exec /tmp/script1.sh

但是当我使用screen版本4.0尝试此操作时,程序在当前(上次使用)窗口中执行,而不是在-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'