Как я могу совместно использовать 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 

  • Как узнать, сколько повторных передач TCP происходит?
  • Почему гидра не отключается?
  • Есть ли более быстрый интерфейс для информации из / proc / net / tcp?
  • минимальный TCP MSS в Linux
  • Принудительное приложение для использования определенного порта на машине Fedora
  • Значение по умолчанию для опции SO_RCVTIMEO в Solaris
  • Каковы другие алгоритмы управления перегрузками, специально разработанные для беспроводных сетей с потерями, таких как LTE и WiMax?
  • Мониторинг портов на маршрутизаторе NAT на основе GNU / 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

    Apt-Get Install Unmet Dependencies

    Поиск ключевых слов URL в GNOME 3

    VirtualBox: одинаковый IP-адрес для обоих сетевых интерфейсов на одном компьютере (научный Linux)?

    Сохранить и восстановить вкладки в терминале gnome

    Увеличение ограничения nproc для пользователя без полномочий root. Эффективно только перезапуском

    Захват нового файла с помощью старого имени

    Подсказка Android bash повреждена с длинным pwd

    Созданная upstart работа, которая работает – система не загружается в CLI, но все работает SSH, RDP и т. Д.

    Как я могу получить цвета для отображения в терминале (macOS Sierra)

    Превращение процентов в десятичные числа?

    Команда Linux – mount возвращает ноль / 0, но не работает

    GRML не загружается автоматически

    Профили контроллера Bluetooth

    Где и как информация о группе пользователей хранится в Ubuntu?

    Предотвращение всего процесса для печати на консоли ожидает, что процесс мастера настройки

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