开发者社区> 问答> 正文

linux下如何umount正在被进程访问的磁盘

不能使用lsof之类工具找出访问磁盘的进程,要求使用linux api找出所用访问磁盘的进程,并kill。

展开
收起
a123456678 2016-06-23 16:12:54 2287 0
1 条回答
写回答
取消 提交回答
  • 我自己想了下,linux应该是没有原生API可以实现的,至于lsof和上面的fuser之类的实现原理,应该是遍历/proc/下面所有pid的fd目录,该目录下的连接文件的路径匹配磁盘路径,说明该进程占用了磁盘。举例:

    ~ # ls -l /proc/$pid/fd/
    lr-x------ 1 root root 64 Dec 31 09:23 0 -> /dev/null
    lrwx------ 1 root root 64 Dec 31 09:23 1 -> /dev/console
    lrwx------ 1 root root 64 Dec 31 09:23 2 -> /dev/console
    l-wx------ 1 root root 64 Dec 31 09:23 3 -> /media/sdcard/xx

    2019-07-17 19:46:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《3-Alibaba Dragonwell 在Alibaba Cloud Linux 3上的应用及优化》 立即下载
Alibaba Cloud Linux 3 技术揭秘 立即下载
Alibaba Cloud Linux 3 发布 立即下载