问题如题所示,我挂载一个squanfs文件系统到指定目录,当我使用完后,准备解挂载时,提示umount: /home/xx/Applications/yy: target is busy.
,具体的如图所示,
这种提示通常是表明这个路径的内容正在被某些进程使用,导致我们无法直接对其作解挂载操作。但我确认这个文件里的内容都已经没在使用了,依旧会报错,让我无法umount。对此,搜罗了些路子,把实测有用的给记录下来,便于后续查阅:
step1:
查找并终止占用挂载点的进程。
命令:$ lsof +D /home/xx/Applications/yy
用于递归地查找指定目录 /home/xx/Applications/yy 及其子目录下所有被打开的文件,并列出使用这些文件的进程信息。
其中,lsof
是 “list open files” 的缩写,即列出打开的文件。在 Unix 类系统(如 Linux、macOS)中,许多资源(如网络套接字、设备文件等)都被抽象为文件,lsof 可以列出当前系统中所有被打开的文件以及与之关联的进程信息。+D
表示用于指定要递归检查的目录,后面跟着的是具体的目录路径。
通过 lsof 命令来查找占用挂载点的进程,然后将其终止。
step2:
终止所有使用了待解挂载文件夹下内容的进程。
命令:$ kill -9 PIDNum
找到界面中会打印占用这个挂载路径的所有进程信息,取出其中的各个PID,并手动将这些进程都kill掉。
step3:
关闭相关进程后,再对指定目录解挂载。
命令:$ unmount /home/xx/Applications/yy
此时,可以将目录成功解挂载,过程如图所示,