如何清除当前正在运行的所有管道?

时间:2013-01-07 13:45:19

标签: shell pipe

我在后台运行了一些已经运行了一天以上的管道进程。

$ cmd | cmd | cmd | cmd | cmd > file

是否可以刷新所有管道,以便我可以看到文件中的当前状态?

1 个答案:

答案 0 :(得分:2)

解决方案

编译

#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取决于您的个人偏好和权限,请确保此命令在您的路径中只需使用它。

讨论

这个(简单的!)事物在通常的工具集中不存在这一事实表明它很少有用:通常这会使操作系统的尝试失败,使事情变得缓慢。更糟糕的是,通过扩展管道(如您展示的管道),它可能会以“错误”的顺序冲洗管道,而不会比以前更加确定当前的进度。