我有一个Linux程序(语言不重要),它将日志打印到标准输出中。
为了监控进程,需要这个日志。
现在我要通过fork或使用线程并行化它。
问题是:结果的标准输出将包含混杂的无关行……
最后问题是:你会如何重新构建并行进程的输出逻辑?
我有一个Linux程序(语言不重要),它将日志打印到标准输出中。
为了监控进程,需要这个日志。
现在我要通过fork或使用线程并行化它。
问题是:结果的标准输出将包含混杂的无关行……
最后问题是:你会如何重新构建并行进程的输出逻辑?
非常抱歉自问自答...
明确的解决方案是使用GNU parallel工具。
它取代了众所周知的xargs
工具,但可以并行运行命令,将输出分成组。
所以我只需保留我的简单单进程、单线程工具不变,并将其调用通过parallel
管道传递,就像这样:
generate-argument-list | parallel < options > my-utility
这取决于parallel的选项,可以为多个调用my-utility
产生漂亮的分组输出。
[process-$PID]
或[roleOfTheProcess]
,以便在日志中进行区分? - lanzz