У меня есть программа потоковой передачи искры, которая считывает данные с сокета, я создал использование:
nc -lk 9999
Программа считывает данные с сокета, и исключите "Ошибочные" сообщения. Когда я пишу вручную в сокете, он хорошо работает.
Я создал сценарий Python, который часто печатает "Ошибочные" сообщения. Я сохраню результат в использовании файла:
stdbuf -oL python my_script.py &>> my_file.txt
и считайте файл из сокета:
nc -lk 9999 | tail -f my_file.txt
Каждая вещь в порядке, сокет считает данные из файла, в то время как файл обновляется на фоне, Но проблема состоит в том, что моя программа искры doen't получает "Ошибочные" сообщения.
Как сводка: когда я пишу вручную "Ошибочные" сообщения в сокете, искра получают их, Но это не получит "Ошибочное" сообщение, сгенерированное сценарием Python от сокета.
На самом деле программа не работает, если я считал файл из сокета вместо того, чтобы ввести в ней.
Каково различие?
Команда Вы ввели
nc -lk 9999 | tail -f my_file.txt
средства: Возьмите вывод netcat
и канал это к tail -f my_file.txt
. Но tail
не принимает входа, он просто наблюдает файл my_file.txt
. Попробовать
tail -f my_file.txt | nc -lk 9999
вместо этого, так, чтобы вывод tail
питается к nc
.