2016-08-02 37 views
1

Ich benutze Bildschirm auf CentOS, um mein Skript zu starten. Beispiel:Befehl auf einem bestimmten Bildschirm auf CentOS ausführen

Output Befehl Bildschirm -ls:

There is a screen on: 
     session-1  (Detached) 
1 Socket in /var/run/screen/S-root 

und ich laufe:

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 

aber es wird nicht funktionieren. Ich möchte script1.sh auf dem Bildschirm laufen: 0, script1.sh auf dem Bildschirm laufen: 1, script1.sh auf dem Bildschirm laufen: 2, ... mit der Option -p <screen number>. Aber es ist keine Arbeit. Bitte hilf mir. Danke!

+0

Haben Windows '1' und' 2' bereits in Bildschirm 'Sitzung-1' erstellt? – Armali

+0

Ja, ich habe 10 Fenster in Sitzung-1 und ich möchte 10 Skript ausführen. –

Antwort

1

Ich habe 10 Fenster in Sitzung-1 und ich möchte 10 Skript ausführen.

Da session-1 und seine Fenster bereits erstellt wurden, benötigen wir keine Optionen -d -m. Auch von den Optionen -r -S brauchen wir nur einen. Um ein Programm in einer bereits bestehenden Sitzung auszuführen, benötigen wir die Option -X exec …. So wären die resultierenden Befehle wie:

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

Aber als ich versuchte, diese mit screen Versionen 4.0, wurde das Programm in dem aktuellen (zuletzt verwendet) Fenster ausgeführt wird, nicht im Fenster von -p angegeben. Anscheinend funktioniert -p nicht mit -X. Was war Arbeit war:

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'