【发布时间】:2016-07-13 05:54:45
【问题描述】:
我想知道在卸载之前使用任何挂载点获取进程的机制,并在 udev 删除 Debian OS 中的存储设备时将其删除。
当我跳过 udev 规则文件中的删除目录时,它会得到很多进程,包括内核等。
如果有人在笔式驱动器中上传或下载时从系统中移除笔式驱动器,我想在屏幕上实现一条警报消息。
请帮帮我。
【问题讨论】:
-
您查看过
/proc/文件系统吗?
我想知道在卸载之前使用任何挂载点获取进程的机制,并在 udev 删除 Debian OS 中的存储设备时将其删除。
当我跳过 udev 规则文件中的删除目录时,它会得到很多进程,包括内核等。
如果有人在笔式驱动器中上传或下载时从系统中移除笔式驱动器,我想在屏幕上实现一条警报消息。
请帮帮我。
【问题讨论】:
/proc/ 文件系统吗?
您可以使用lsof 命令。该命令列出了哪个进程正在使用哪个文件。输出包含命令、PID、USERID、文件类型、设备、边、文件名等。
您可以使用 grep 查找挂载点以查找谁在使用您的设备。
语法:
#lsof | grep <mount point>
或
#lsof <mount point>
其他选项是使用fuser 命令。它显示正在使用给定文件/目录的进程 ID
语法:
#fuser <mount point >
【讨论】:
感谢您的回复。我是通过定影器得到的。我的问题是用户删除后如何处理。在我的系统中,热插拔由 udev 规则管理。其显示指定的文件名 /media/pen-drive 不存在。删除操作是 ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/sh -c '/bin/fuser -m /media/%E{dir_name'", RUN+="/bin/umount - l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
【讨论】: