Создание буфера STD IN/OUT для программы, выполняющейся в сеансе экрана
Среда
Linux version 2.6
Screen version 4.03.01
Я запускаю приложение внутри сеанса экрана. Программа печатает в STDOUT и читает из STDIN.
Что я хотел бы сделать:
Во-первых, уТВЕРЖДЕНИЕ screen
tee
бы в файл. По какой-то причине, пайпинг для тройника записывает только первые несколько строк, а затем останавливается. Это может быть потому, что выполняемый мной сценарий оболочки запускает другие приложения / сценарии оболочки... Есть ли способ подключения к 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
.)