3

我有一个快速的问题,但我找不到答案。是否可以在 linux(或 python)中查看外部 USB 笔式驱动器是否处于空闲状态?对于我正在编写的 python 脚本,我需要知道这一点。只要没有写入任何内容,我就需要重命名外部 USB 笔式驱动器上的文件夹。

编辑:我知道有 lsof 命令列出打开的文件。'lsof /theDir' 只工作一半。当复制到 USB 的过程仍在运行时,它工作正常。但是当进程停止时, lsof 什么也没有显示。但操作系统仍在从其缓冲区写入 USB。

4

1 回答 1

4

您可以通过查看/sys/block/<dev>/stat. 第九列包含当前正在运行的 I/O 数量。检查https://www.kernel.org/doc/Documentation/block/stat.txt
一旦这个数字为零,设备应该是空闲的。

要强制立即写入所有缓冲区,您可以执行sync并等待它返回。

不过请注意,如果您不控制写入,则此处存在竞争条件 - 在您确定设备空闲后,其他一些进程可能会开始对其进行写入。

于 2014-07-29T08:23:28.397 回答