2016-08-02 2 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

はい、私はセッション1で10のウィンドウがあり、私は10のスクリプトを実行したいと思います。 –

答えて

1

私はセッション1で10のウィンドウを持っています。私は10のスクリプトを実行したいと思います。

session-1とそのウィンドウは既に作成されているので、オプション-d -mは必要ありません。また、オプション-r -Sのうち1つだけが必要です。すでに存在するセッションでプログラムを実行するには、オプション-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' 
関連する問題