Вывод информации с экрана в сеть
От: lspci  
Дата: 16.07.07 08:45
Оценка:
есть прога которая выводит инфу на экран и постоянно запущена.
нужно чтобы с помощью телнета по сети можно было прочитать эту информацию.
вывод в лог файл запрещён.
с помощью inetd не получается, т.к. он запускает прогу в момент присоединения.
netcat тоже подходит — возможно только одно подключение.
есть какие-нибудь идеи?
... << RSDN@Home 1.2.0 alpha rev. 694>>
Re: Вывод информации с экрана в сеть
От: Dair Россия  
Дата: 16.07.07 14:37
Оценка:
Вариант №1: программа выводит прямо на экран, т.е. /dev/tty##. Тогда никак.
Вариант №2: программа выводит-таки в stdout/stderr, которые, поскольку программа запущена из консоли, приконнекчены к экрану (тому же /dev/tty##).

Тогда посередине можно вклиниться (при старте программы, конечно) и, помимо передачи информации далее, открыть сокет на сетевое соединение.

Или я неправильно понял задачу.
Re[2]: Вывод информации с экрана в сеть
От: lspci  
Дата: 17.07.07 03:54
Оценка:
Здравствуйте, Dair, Вы писали:

D>Вариант №1: программа выводит прямо на экран, т.е. /dev/tty##. Тогда никак.

D>Вариант №2: программа выводит-таки в stdout/stderr, которые, поскольку программа запущена из консоли, приконнекчены к экрану (тому же /dev/tty##).

D>Тогда посередине можно вклиниться (при старте программы, конечно) и, помимо передачи информации далее, открыть сокет на сетевое соединение.


нуда, наверно проще будет открыть сокет или использовать утилиту screen
Re: Вывод информации с экрана в сеть
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 17.07.07 05:48
Оценка:
Здравствуйте, lspci, Вы писали:

L>есть прога которая выводит инфу на экран и постоянно запущена.

L>нужно чтобы с помощью телнета по сети можно было прочитать эту информацию.
L>вывод в лог файл запрещён.
L>с помощью inetd не получается, т.к. он запускает прогу в момент присоединения.
L>netcat тоже подходит — возможно только одно подключение.
L>есть какие-нибудь идеи? :)

Если "экран" — виртуальная консоль, то можно читать её содержимое напрямую (например, на линуксах через /dev/vcsa$N). Но если это что-то другое — пришедшее по ssh, или локальный xterm — метода нет, потому что полное состояние нигде локально не хранится. Если наблюдать с самого начала — можно отрисовывать передаваемое на том же типе терминала ($TERM), но вклиниться посредине даёт сильный шанс что-то упустить.
The God is real, unless declared integer.
Re: Вывод информации с экрана в сеть
От: Adekameron  
Дата: 17.07.07 07:19
Оценка:
Ну я влезу опять со своими любимыми пайпами
man mkfifo
и перенаправляем\дублируем поток в пайп
а там уже с новой консоли банально читаем с пайпа
Re[2]: Вывод информации с экрана в сеть
От: Dair Россия  
Дата: 17.07.07 09:34
Оценка:
A>Ну я влезу опять со своими любимыми пайпами
A>man mkfifo
A>и перенаправляем\дублируем поток в пайп
A>а там уже с новой консоли банально читаем с пайпа

Пайп — это прекрасно, но
1. Читающая сторона должна быть всегда
2. Если читающая сторона отключится, получим SIGPIPE.
Re[3]: Вывод информации с экрана в сеть
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 17.07.07 09:49
Оценка:
Здравствуйте, Dair, Вы писали:

A>>Ну я влезу опять со своими любимыми пайпами

A>>man mkfifo
A>>и перенаправляем\дублируем поток в пайп
A>>а там уже с новой консоли банально читаем с пайпа

D>Пайп — это прекрасно, но

D>1. Читающая сторона должна быть всегда
D>2. Если читающая сторона отключится, получим SIGPIPE.

Ну и что? Большая проблема отключить SIGPIPE, если это нужно, и обработать ошибку самому?

На сокетах, кстати, SIGPIPE тоже отдаётся.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.