Как я могу совместно использовать stdout между несколькими процессами?

Я хочу получать поток в реальном времени TCP и сделать его доступным для чтения другими процессами одновременно, не сохраняя его.

Например, 111.222.233.244:1234 потоков фактическое время. Сервер поддерживает только одно соединение.

tty1:

$ nc 111.222.233.244 1234 | (do something here) /tmp/tcpstream & $ sleep 5 # stream is received even if there is no process that reads it $ cat /tmp/tcpstream # it can also be like `(some command) | cat -` 17:00:06 17:00:07 17:00:08 17:00:09 17:00:10 17:00:11 

TTY2 (вторая cat выполняется через 9 секунд после выполнения nc ):

 $ cat /tmp/tcpstream 17:00:09 17:00:10 17:00:11 

  • почему у меня так много открытых обработчиков сокетов и записей в Netgrat DGRAM?
  • Не удается использовать telnet для частного IP-адреса или порта
  • В linux «/ proc / sys / net / ipv4 / tcp_keepalive_time» влияет как на клиента, так и на сервер?
  • Rsync - Поврежденный MAC на входе
  • Какие порты будут использовать ssh-демон?
  • Являются ли исходные IP-адреса включенными в уникальность уникального порта Linux?
  • Как установить общий сетевой предел для каждого клиента + приоритет для подтверждений TCP
  • Почему я не вижу капель с потоками TCP в linux
  • 2 Solutions collect form web for “Как я могу совместно использовать stdout между несколькими процессами?”

    Возможно, инструмент tcpclone может вам помочь. Он прослушивает входящие соединения на определенном порту, и любые данные, считанные со стандартного ввода, перенаправляются на эти соединения.

    Затем ваш пример должен выглядеть примерно так:

     $ nc 111.222.233.244 1234 | ./tcpclone 5555 & $ nc 127.0.0.1 5555 

    Я не уверен, что полностью понимаю вашу проблему, но как насчет:

     $ nc 111.222.233.244 1234 \ | tee -a /tmp/stream.dump \ | while ! do_something_here; do : ; done 

    Помимо очевидного сброса потока в файл с tee (добавление, поскольку сеть может быть отключена по разным причинам, и вы, возможно, не обязательно хотите перезаписать часть превизии потока), это будет respawn do_somehing_here если оно не выйдет должным образом. Следовательно, если do_somehing_here – это, например, скрипт-оболочка, вы можете убить все, что он на самом деле вызывает, что приводит к тому, что скрипт выходит из строя ненормально и немедленно возвращается обратно. Если вы отредактируете скрипт перед его убийством, обработка потока может быть изменена без повторного подключения.

    Interesting Posts

    Как сделать sda1 больше / использовать файлы загрузки по умолчанию в sdb1

    Создайте точку доступа Wi-Fi в Gnome 3 / Arch Linux

    Внутри fakeroot, почему chown возвращает EPERM, даже если это удается (но опять же это не так)?

    Буферизация Nginx & FastCGI

    Linux на Lenovo Z575 – без дисплея после установки

    Увеличение времени на завершение запросов

    Получение уже установленного раздела x86 для Windows на KVM

    Могут ли файлы с разными именами быть жестко связаны?

    Почему основной UID администратора 501?

    Поддержка SSNiper SSN Scanner

    Как вы обрабатываете всю команду как sudo, которая включает перенаправление или конвейер?

    Может ли функция из sh иметь нулевые операторы?

    Частота кадров курсора мыши медленная, но только при входе в мою основную учетную запись

    Наличие нескольких компьютеров в файле доступа к сети?

    Есть ли причина, по которой существуют разрешения владельца? Достаточно ли групповых разрешений?

    Linux и Unix - лучшая ОС в мире.