我有一些管道进程在后台运行,这些进程已经运行了一天多了。
$ cmd | cmd | cmd | cmd | cmd > file
是否可以刷新所有管道,以便我可以看到文件内的当前状态?
最佳答案
解决方案
编译
#include <stdio.h>
#include <unistd.h>
#include <sys/errno.h>
int main(int argc, char **argv){
fflush(NULL);
if (!errno) sync();
return errno;
}
到fflush
,但它在~/bin
或/opt/bin
或/usr/local/中bin
根据您的个人喜好和权限,请确保此命令位于您的路径中并简单地使用它。
讨论
事实上,这个(简单!)东西并不存在于通常的工具集中,这表明它很少有用:一般来说,这会挫败操作系统的智能尝试,并使事情变慢。更糟糕的是,对于像您展示的那样的扩展管道,它可能会以“错误”的顺序冲洗管道,从而使当前进度比以前更加确定。
关于shell - 如何冲洗当前正在运行的所有管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14197245/