在Linux上,我怎样才能看到一个进程有多远?

如果我有一个pipe道命令如

cat myfile | processor_application 

在哪里处理器应用程序是从标准读取,大块,处理的东西,是否有可能看到多远,通过文件猫已经得到了?

可能使用lsof

谢谢!

你可以用pv来做这件事

pv file | processor_application

由于PV通过它的stdin直接到它的标准输出,你不需要使用猫。

编辑当你的程序已经运行,然后findcat进程的PID,然后看看内容

/proc/<PID>/io

它会告诉你它写了多less字节 – wchar。

绝对! pipe道查看器确实确实。 只需将其插入pipe道中即可:

 cat myfile | pv | processor_application 

在上面的例子中你可以优化掉cat

 pv myfile | processor_application 

这有一个提供实际进度指标的优势,因为PV可以直接确定input的大小。 如果您在pipe道中间使用pv,则需要自行提供文件大小以获得准确的进度:

 input_process | pv -s 100M -p | processor_application 

检查网站的更多选项来定制光伏。

如果进程已经在运行,lsof的size/offset列可能对您有所帮助 – find要检查的进程的PID,然后inputlsof -o -p [PID]

如果进程还没有运行,像其他人build议的pv是一个很好的select(假设你的系统有这个实用程序)。