我想看一个进程的文件有多远。或者,更准确一点:我想知道一个进程正在读取的文件的哪个部分。现在我可以使用像pv命令之类的东西,除了因为我想在已经运行的进程上执行此操作而无法工作。
以下是几个例子:
让我们说视频正在vlc中播放。我希望能够通过另一个程序告诉视频vlc有多远。
或者用dd。让我说我正在镜像一个硬盘驱动器(我知道这个例子有问题,因为如果他们想跟踪进度(我是个傻瓜),有人在没有光盘的情况下启动dd是愚蠢的,你可以发送kill信号到dd获取当前信息进步,但忽略了这两个事实......)。这可以用来向我展示转移进度。
我在一些Linux系统上看到,你可以使用lsof -o来获取偏移量,但我不知道如何将这段数据(看起来像这个0t1659509
)变成一个过程在文件中的持续时间百分比,或者甚至是否可能。另外,了解不止一种方法做得好。
答案 0 :(得分:6)
在现代Linux内核上,您可以在/proc/$pid/fdinfo/$fd
中获取有关进程持有的文件描述符的信息,包括当前偏移量:
pos: 12345
flags: 0100000