2016-08-02 43 views
1

我在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腳本。 –

回答

1

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