LINUX.ORG.RU

Перенаправление потока stdout. Ускорение скидывания данных.


0

1

Есть приложение, запущенное из командной строки так:

./appname > log.log

Данные в лог пишутся шеллом, но, похоже, с буферризацией. Задержка составляет около секунды. Командой tail -f log.log я вижу изменения не моментально, а с этой задержкой. Командой watch -n0.2 «tail -n 30» с той же задержкой в секунду.

Нельзя ли без остановки приложения как-то повлиять на эту буферризацию в сторону уменьшения времени задержки?

Спасибо.

man tail

-s, --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations

anonymous
()
Ответ на: комментарий от true_admin

LD_PRELOAD это хорошо :) но топикстартеру нужно круче,

без остановки приложения

Хотя существование приложения, способного на ходу по внешнему сигналу менять размер буфера stdout, можно преположить (чисто теоретически).

mky ★★★★★
()
Ответ на: комментарий от mky

ох, интересная задачка. Вообще, раз существует ksplice то должен существовать способ патчить проги на лету. Жаль что не слышно чтобы кто-то этим занимался :(. А у мну кишка тонка такие вещи делать.

true_admin ★★★★★
()
Ответ на: комментарий от Reset

раскажи подробнее как лисп может быть использован, например, на хостинге для латания дыр в mysql? :)

true_admin ★★★★★
()
Ответ на: комментарий от Reset

unbuffer из пакета expect.

Его советуют использовать в скриптах как то так:

cat /tmp/abcdef.log | unbuffer grep abc

Всё равно остановка и изменение кода скрипта.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.