stream标准输出

我有一个脚本,输出大量的debugging数据,我想避免保存在磁盘上(特别是因为文件系统是在闪存卡上)。 所以我用nohup +将stdoutstderr/dev/null来运行它。

但是,当它开始失败,我希望能够得到debugging输出的标准输出生活。 当通过设备的一个串行端口连接以获得其输出时。 一个可以被监视但不存储在设备上的stream。

我正在考虑将输出redirect到本地UDP套接字,这样我就可以连接和断开“stream”而不影响脚本,如果有人在监听数据,那么脚本就不会受到影响。 但是我对我可以使用的不同技术以及已经可用的工具感兴趣。

我怎样才能stream化正在运行的进程的输出?

限制

我无法修改输出debugging信息到stdout的库。 我必须将脚本的stdout传递给可以stream式传输的程序(不保存到磁盘的整个输出)。

将输出传送给NetCat,后者可以将数据stream式传输到UDP套接字。

正如@Eric Renouf所指出的那样, screen就足以拉开帷幕。 screen的日志logging选项也非常有用,因为在会话中的任何时刻,可以使用Ca H或使用手册中 :log命令打开和closures:log 文件 。 用这种方法很容易精确地控制输出的多lesslogging。

启动脚本:

 screen -dmS $SESSION_NAME "$SCRIPTDIR/$SCRIPT_NAME" 2>&1 

停止脚本:

 pkill -f "$BIN .+/$SCRIPT_NAME" 

我想要一个更简单的“一切都是文件”的Linux风格,以便能够使用更简单的工具,如tee ; 但是目前这已经足够好了,并且回答了这个问题。 不同的实现仍然受欢迎。