Среда

Linux version 2.6
Screen version 4.03.01

Я запускаю приложение внутри сеанса экрана. Программа печатает в STDOUT и читает из STDIN.

Что я хотел бы сделать:

Во- первых, есть STDOUT screen tee «D в файл. По какой-то причине, пайпинг для тройника записывает только первые несколько строк, а затем останавливается. Это может быть потому, что выполняемый мной сценарий оболочки запускает другие приложения / сценарии оболочки ... Есть ли способ подключения к STDOUT сеанса экрана?

Во-вторых, я хотел бы создать файл, как, возможно, fifo ?, который я могу записать и сделать так, чтобы он отправлял эти данные в STDIN сеанса экрана.

Я открыт для других предложений, таких как вообще не использовать screen и делать что-то с nohup и некоторыми fifo

По сути, я хочу создать фоновое приложение и иметь файл, который я могу привязать к выходу, а другой - для перенаправления ввода.

1 ответ1

0

По сути, я хочу создать фоновое приложение и иметь файл, который я могу привязать к выходу, а другой - для перенаправления ввода.

Если это так, то (1) нам нужно фоновое application и отправить его вывод в файл file:

application >file &

И (2) нам нужно привязать вывод приложения к команде another:

tail -f | another

пример

Давайте создадим пример application и another:

$ application() { while sleep 1; do date; done; }
$ another() { grep 2017; }

Теперь давайте запустим application в фоновом режиме:

$ application >file &
[1] 5989

И давайте запустим another на переднем плане:

$ tail -f file | another
Sat May 20 18:32:05 PDT 2017
Sat May 20 18:32:06 PDT 2017
Sat May 20 18:32:07 PDT 2017
Sat May 20 18:32:08 PDT 2017
Sat May 20 18:32:09 PDT 2017
Sat May 20 18:32:10 PDT 2017
[...clip...]

Внутри сеанса экрана с использованием FIFO

Сначала запустите сеанс экрана. Затем запустите:

$ mkfifo fifo
$ application >fifo &
[1] 8129
$ cat fifo | another
Sat May 20 18:50:39 PDT 2017
Sat May 20 18:50:40 PDT 2017
Sat May 20 18:50:41 PDT 2017
Sat May 20 18:50:42 PDT 2017
Sat May 20 18:50:43 PDT 2017
Sat May 20 18:50:44 PDT 2017
Sat May 20 18:50:45 PDT 2017
Sat May 20 18:50:46 PDT 2017
[...snip...]

(Я использовал cat fifo | another для его парализма к первой версии tail -f . cat здесь не нужна. Мы могли бы использовать another <fifo .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .