我希望将标准输出(stdout)和标准错误(stderr)重定向到套接字(socket),然后可以通过以太网远程监视我的应用程序状态。目前我是通过使用ssh并在shell控制台中查看输出来完成这个操作的。如果可能的话,我更希望消除中间环节,直接将整个stdout和stderr输出发送到udp或tcp/ip端口,并让我的监视计算机连接到它。注意,我不能使用UART或任何其他有线连接,必须使用以太网。此外,如果可能的话,我希望通过bash脚本实现,以免重新构建我的应用程序。谢谢帮忙。
nc -l -p <port> -c "tail -F /var/log/blah"
。
nc -l <port>
,以使应用程序等待监视器连接,就像OP所描述的那样。 - thuovilanc
命令是正确的,因为这发生在“客户端”,它将连接到监视“服务器”并将应用程序的输出发送到该服务器。那个-l
选项在监视“服务器”上有意义,但不适用于通信的这一侧(正如我在帖子的第一句话中所述)。 - asamarinstderr
和stdout
,像这样:$ ./application 2> >(nc <host> <err-port>) > >(nc <host> <out-port>)
。 - Ciprian Tomoiagă