并行作业的控制台输出在tcsh中出现偏差

时间:2016-01-22 01:52:57

标签: linux console makefile tcsh

我有一个makefile,我用-j switch调用它来启用并行执行。每个目标在实际作业运行之前打印出一点“运行此目标”消息。大多数时候控制台输出看起来不错。我看到打印件的顺序正确并且在控制台的左侧对齐,如下所示:

Running target1
Running target2
Running target3

但是当一个或多个目标失败时,屏幕输出会被空格倾斜/偏移,如下所示:

Running target1
        Running target2
                Running target3
                        make: *** [target3] Error

一旦开始倾斜,无论目标成功还是失败,每次下一次打印都会倾斜。

这真的很烦人,特别是因为我不明白原因。为什么会出现这种倾斜?如何防止这种情况发生呢?

1 个答案:

答案 0 :(得分:0)

Carpetsmoker指出,这种倾斜是因为多个进程同时写入stderr / stdout。

make(我猜测版本4.0或更高版本)提供了一个同步输出( - output-sync或-O)与不同粒度级别的选项。这个选项完全符合我的要求!

https://www.gnu.org/software/make/manual/html_node/Options-Summary.html