如何知道哪个设备已打开

如何知道哪个设备已打开

有没有任何 shell 命令可以让我知道当前打开的设备或设备已在运行。

例如,我使用minicom打开一个设备,/dev/ttyUSB0或者/dev/ttyS0我使用程序打开这个设备后,如何在shell下检查它是否已经打开?我尝试过dmesg,但似乎对我不起作用

答案1

lsof <your devices>显示使用您设备的进程。或者strace -p pid跟踪您知道应该使用您的设备的进程。

答案2

我认为 lsof 是应该使用的工具。它将列出进程正在使用的所有文件。

如果你不知道进程ID,也可以使用fuser。

答案3

块设备

问题中给出的例子是不是块设备,但问题是一般性的,所以如果你的块设备,使用:

badblocks -n -c1 /dev/device-name 0 0

这将尝试对设备的前 1024 字节进行非破坏性重写

如果正在使用,您将看到:

/dev/device-name is apparently in use by the system; it's not safe to run badblocks!

相关内容