Создание буфера STD IN/OUT для программы, выполняющейся в сеансе экрана

Среда

Linux version 2.6
Screen version 4.03.01

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

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

Во-первых, уТВЕРЖДЕНИЕ screenteeбы в файл. По какой-то причине, пайпинг для тройника записывает только первые несколько строк, а затем останавливается. Это может быть потому, что выполняемый мной сценарий оболочки запускает другие приложения / сценарии оболочки... Есть ли способ подключения к STDOUT сеанса экрана?

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

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

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

1 ответ

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

Если это так, то (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.)

Другие вопросы по тегам