linux如何卸载挂载文件
博客专区 > nao 的博客 > 博客详情
linux如何卸载挂载文件
nao 发表于1年前
linux如何卸载挂载文件
  • 发表于 1年前
  • 阅读 15
  • 收藏 0
  • 点赞 0
  • 评论 2

移动开发云端新模式探索实践 >>>   

  • 卸载不掉文件
[root@gfsd1 mnt]# umount 20170228_Mustang_V5R1_SP1/   
umount: /mnt/20170228_Mustang_V5R1_SP1: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@gfsd1 mnt]#

解决办法

  • 查找使用这个文件的进程和命令,具体的操作代码:
[root@gfsd1 mnt]# lsof |grep /mnt/20170228_Mustang_V5R1_SP1/
start.sh    5817                  root  cwd       DIR               0,38      4096 562949953463862 /mnt/20170228_Mustang_V5R1_SP1/81-moboss/nms/nms_webserver/rel/nms_webserver
start.sh    5817                  root  255r      REG               0,38       390 281474977094086 /mnt/20170228_Mustang_V5R1_SP1/81-moboss/nms/nms_webserver/start.sh
  • 执行ps可以查找执行此进程的命令
[root@gfsd1 mnt]# ps -ef|grep 5817
root       5817   4134  0 19:06 pts/20   00:00:00 /bin/sh ./start.sh
root       6235   5817  0 19:06 pts/20   00:00:01 [beam.smp] <defunct>
root      71875   4134  0 19:18 pts/20   00:00:00 grep --color=auto 5817
  • 强行结束无关命令
[root@gfsd1 mnt]# kill -9 5817

lsof简介

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事务都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议(TCP)和用户数据包协议(UDP)套接字等。 系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序和基础操作系统 之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过 lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

lsof的使用
在终端下输入lsof即可显示系统打开的文件,因为lsof需要访问核心内存和各种文件,所以必须以root用户的身份运行它才能够充分地发挥功能。

[root@localhost redis-3.0.5]# lsof
COMMAND     PID      USER   FD      TYPE             DEVICE  SIZE/OFF              NODE NAME
init          1      root  cwd       DIR              253,0      4096                 2 /
init          1      root  rtd       DIR              253,0      4096                 2 /
init          1      root  txt       REG              253,0    150352            131100 /sbin/init
init          1      root  mem       REG              253,0     65960           1048641 /lib64/libnss_files-2.12.so
init          1      root  mem       REG              253,0   1928936           1049950 /lib64/libc-2.12.so
init          1      root  mem       REG              253,0     93320           1048644 /lib64/libgcc_s-4.4.7-20120601.so.1
init          1      root  mem       REG              253,0     47168           1049956 /lib64/librt-2.12.so
init          1      root  mem       REG              253,0    145936           1049951 /lib64/libpthread-2.12.so
init          1      root  mem       REG              253,0    268232           1048618 /lib64/libdbus-1.so.3.4.0
init          1      root  mem       REG              253,0     39896           1048705 /lib64/libnih-dbus.so.1.0.0
init          1      root  mem       REG              253,0    101920           1048707 /lib64/libnih.so.1.0.0
init          1      root  mem       REG              253,0    157072           1048623 /lib64/ld-2.12.so

每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。 lsof输出各列信息的意义如下:

标识作用
COMMAND进程的名称
PID进程的标识符
USER进程所有者
FD文件描述符,应用程序通过文件描述符识别该文件。
TYPE文件类型, 如DIR, REG等
DEVICE指定磁盘的名称
SIZE文件的大小
NODE索引节点
NAME打开文件的确切名称
标签: Linux
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 28
博文 145
码字总数 106780
评论 (2)
魅狐
如果不考虑进程正在处理的任务,可以使用 fuser -km /mnt/20170228_Mustang_V5R1_SP1/ 来kill所有占用待卸载目录的进程。
用lsof并不能100%保证可以列出所有需要kill的进程。
nao

引用来自“魅狐”的评论

如果不考虑进程正在处理的任务,可以使用 fuser -km /mnt/20170228_Mustang_V5R1_SP1/ 来kill所有占用待卸载目录的进程。
用lsof并不能100%保证可以列出所有需要kill的进程。
:thumbsup:
×
nao
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: