2014-12-23 3 views
1

Я пытаюсь одновременно запускать несколько сценариев на отдельных сеансах экрана.Просмотр вывода скрипта с использованием экрана

Это код, который у меня есть.

#!/bin/bash 
screen -mdS Name_Screen1 "python /path/to/file/file.py arg1 arg2 arg3" 
screen -mdS Name_Screen2 "python /path/to/file/file.py arg3 arg4 arg5" 
screen -mdS Name_Screen3 "python /path/to/file/file.py arg6 arg7 arg8" 

При вводе «экран -list», чтобы увидеть, что экраны доступны, я не вижу какой-либо из экранов я в настоящее время работает. Эти скрипты выводят некоторую информацию на экран, что зависит от приведенных аргументов. Я просмотрел некоторые проблемы, размещенные здесь, но я не могу найти ответ для этого.

Есть ли способ посмотреть выходные данные этих экранов, не делая что-то вроде «> out.txt»?

Update

Так что я, наконец, понял это. В итоге я создал только один сеанс экрана и несколько окон в сеансе.

#!/bin/sh 
Lum_Types=("Window1" "Window2" "Window3") 
Windowname="Screen_session" 
screen -mdS $Windowname 
for Lum in ${Lum_Types[@]} 
do 
    screen -S $Windowname -X screen -t $Lum 
    screen -S $Windowname -p $Lum -X stuff $"python /Path/to/file arg1 arg2" 
    screen -S $Windowname -p $Lum -X stuff $'\n' 
done 

Одним из ключевых элементов были добавить $ после -X stuff, чтобы передать строку на сессию экрана и окно.

+1

Вы не видите эти экраны в рабочем состоянии? Вы используете «screen -list» как один и тот же пользователь? Продолжаются ли эти процессы или они вышли? –

+0

@EtanReisner Да, я запускаю список экранов как один и тот же пользователь. Если я сначала выполнил команду «screen -mdS Name_Screen» без остальной части команды, тогда экран будет создан. Но по какой-то причине, когда я прикрепляю остальную команду, ничего не появляется. – Victor

+0

Выполняются ли процессы до проверки? Что делают эти процессы? Можете ли вы запустить их на экране правильно вручную? –

ответ

1

Итак, я, наконец, понял это. В итоге я создал только один сеанс экрана и несколько окон в сеансе.

#!/bin/sh 
Lum_Types=("Window1" "Window2" "Window3") 
Windowname="Screen_session" 
screen -mdS $Windowname 
for Lum in ${Lum_Types[@]} 
do 
    screen -S $Windowname -X screen -t $Lum 
    screen -S $Windowname -p $Lum -X stuff $"python /Path/to/file arg1 arg2" 
    screen -S $Windowname -p $Lum -X stuff $'\n' 
done 

Одним из ключевых элементов были добавить $ после -X stuff, чтобы передать строку на сессию экрана и окно.

- Victor

-1

Все, что вам нужно сделать, это разделить слова команды.

screen -mdS "Name_Screen1" python /path/to/file/file.py "arg1" "arg2" "arg3" 

с ними, сгруппированных в sngle Strin экране не выполнит их, он просто уходит сразу, , поэтому они не отображаются в списке.

 Смежные вопросы

  • Нет связанных вопросов^_^