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

Имеются ли окна '1' и' 2' в экране 'session-1'? – 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 

Но когда я попытался это с 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' 
Смежные вопросы