Streaming stdout

У меня есть сценарий, который выводит много отладочных данных, которые я бы не хотел сохранять на диске (особенно потому, что файловая система находится на карте флэш-памяти. ). Поэтому я запускаю его в фоновом режиме с помощью nohup + & удаление stdout и stderr в / dev / null .

Но когда он начинает терпеть неудачу, я хотел бы получить этот отладочный вывод на его stdout live. Так же, как при подключении через последовательный порт устройства для получения его вывода. Поток, который можно отслеживать, но он не сохраняется на устройстве.

Я думал о перенаправлении вывода на локальный UDP-сокет, чтобы я мог подключаться и отключаться от «потока», никоим образом не влияя на сценарий и то же самое. сценарий не стал бы беспокоиться, если бы кто-то слушал данные. Но меня интересуют различные методы, которые я мог бы использовать, и инструменты, которые уже доступны.

Как я могу передать вывод запущенного процесса?

Ограничение

Я могу » t изменить библиотеку, которая выводит отладочную информацию в stdout . Мне нужно передать по конвейеру stdout сценария программе, которая может передавать его (не сохраняя на диск весь вывод).

0
задан 23 March 2016 в 23:01
2 ответа

Передать вывод в NetCat, который может передавать данные в сокет UDP.

1
ответ дан 4 December 2019 в 16:39

Как указал @Eric Renouf, screen достаточно, чтобы добиться успеха. Параметры ведения журнала на экране тоже очень полезны, поскольку в любой момент внутри сеанса файл журнала можно включать и выключать с помощью Ca H или : log как задокументировано в руководстве . Таким образом легко и точно контролировать, какая часть вывода записывается.

Запуск сценария:

screen -dmS $SESSION_NAME "$SCRIPTDIR/$SCRIPT_NAME" 2>&1

Остановка сценария:

pkill -f "$BIN .+/$SCRIPT_NAME"

Я хотел немного попроще и "все в виде файла" стиль Linux, чтобы иметь возможность использовать более простые инструменты, такие как tee ; но на данный момент этого достаточно и он отвечает на вопрос. По-прежнему приветствуются различные реализации.

0
ответ дан 4 December 2019 в 16:39

Теги

Похожие вопросы