Поддельный терминал

Papazyan

Есть ли возможность перенаправить файл на stdin программы, которая ожидает терминал?
Нужно что-то типа
tail -f input_file | proga
proga не хочет работать через пайп, пытается настроить терминал.

Marinavo_0507

может быть, screen умеет?

vall

в голову пришёл только такой изврат =)
(sleep 1 ; tail -f input_file > `tty`) & proga
только он работает с некоторой вероятностью.
по уму надо выделить псевдо терминал и запустить прогу на нём.

Papazyan

по уму надо выделить псевдо терминал и запустить прогу на нём.
Выделить screen'ом?

Ivan8209


1 3 512 /usr/src/usr.bin/script/CVS
8 22 163 /usr/src/usr.bin/script/Makefile
127 611 3531 /usr/src/usr.bin/script/script.1
383 1126 8541 /usr/src/usr.bin/script/script.c
519 1762 12747 total

Допилить, надеюсь, сумеешь.
---
...Я работаю антинаучным аферистом...

Papazyan

Сам script не нужен. Что-то химичить на его основе смысла нет, проще прогу переписать.

Papazyan

может быть, screen умеет?
Действительно, умеет, хоть и через Ж.
screen -S mysession -d -m proga
tail -f | awk ....system(screen -S mysession -X eval "register 0 $0" "paste 0")...
awk команда выглядит крайне хреново, из-за необходимости экранировать всякие ",',`.
Может есть более простой путь выполнить screen c параметром из pipe? Я ничего не вспомнил с ходу (перл не предлагать).

Ivan8209

Там нужно вырезать чтение журнала, заменить его на простое
чтение, вроде cat(1 и ты получишь то, что тебе надо.
Ну, ещё полностью вырезать ту часть, которая относится к записи.
8 тыс. знаков, из которых полторы-две тысячи занимает соглашение
БСД, это не так много.
---
...Я работаю антинаучным аферистом...

Papazyan

Там нужно вырезать чтение журнала, заменить его на простое
чтение, вроде cat(1 и ты получишь то, что тебе надо.
Да, довольно просто. Странно, что нет стандартной проги для этого.
Модифицировать script не хочется потому, что это означает поддержку какого-то слегонца левого кода, который реально не так уж нужен. screen хоть распространенная прога, и под Линукс есть и под Солярис.

Papazyan

Вообще, оказывается есть script с нужной функциональностью. Под Gentoo.
Под SuSE, правда, не компилируется без напильника, и содержит в себе какой-то странный баг - выкинут обработчик SIGCHLD, из-за этого он завершается криво.

Ivan8209

Чисто на будущее, скажи, как называется, что ли.
---
...Я работаю антинаучным аферистом...

Papazyan

Так и называется script. Даже лицензия таже, хотя код существенно изменен по сравнению с NetBSD script.

Ivan8209

Ясно, спасибо.
Пропинать, что ли, изменения обратно?
---
...Я работаю антинаучным аферистом...
Оставить комментарий
Имя или ник:
Комментарий: