Имам програма която работи постоянно и нищо друго не прави освен да чете stdin, да го обработва и да го изкарва обратно на stdout.
Данните са текстови и са разделени с \n. тук за простота наричам програмата 'user_lines_process'. Тя е доволно сложно нещо, накрая има много опции, които заради тестването постоянно променям.
Има ли някакъв стандарен тоол (нещо подобно на TCP Wrapper) с който да може да стартира user_lines_process, да захване нейният стандартен вход и изход и да ги пренасочи към tcp сокет.
например нещо такова:
demonize -port 8080 -host localhost "user_lines_process"
целта ми е да мога отдалечено да тествам работа на user_lines_process например така:
echo 'some text to test' | nc localhost 8080
четох това
http://www.lainoox.com/bash-socket-programming/http://shudder.daemonette.org/source/BashNP-Guide.txtexec 3<> /dev/tcp/127.0.0.1/8080
user_lines_process 1>&3 <&3
Обаче така не става, защото порта 8080 трябва да е вече отворен. Това си е само писане на shell-а към сокет.
TCP Wrapper-ите от рода на tcpd също не стават, защото долкото разбирам те само изпълняват един път програмата, когато дойде конекция и след това я забравят. А при мен user_lines_process работи непрекънато. Не е направена да обработи еднин ред и след това да излезе.
това
nc -k -l 8080 | user_lines_process
работи, но само в едната посока

- слуша на порт 8080, но само за stdin - и не може да изпрати изхода от stout обратно на 8080.
Този проблем като гледам е доволно просто нещо и се надявах да има някаква програма с която да мога набързо да закърпя нещата - докато тествам и променям опциите. Като всичко е готово ще бутна user_lines_process в някой скрит, който да прави всичко това, но засега не ми се пише още скрипт, щото имам още много неизвестни.