在卸载文件系统时, 如果该文件系统中有任何打开的文件, 操作通常将会失败. 那么通过 lsof 可以找出那些进程在使用当前要卸载的文件系统, 如下:
# lsof /GTES11/
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
- bash 4208 root cwd DIR 3,1 4096 2 /GTES11/
- vim 4230 root cwd DIR 3,1 4096 2 /GTES11/
在这个示例中, 用户 root 正在其 / GTES11 目录中进行一些操作. 一个 bash 是实例正在运行, 并且它当前的目录为 / GTES11, 另一个则显示的是 vim 正在编辑 / GTES11 下的文件. 要成功地卸载 / GTES11, 应该在通知用户以确保情况正常之后, 中止这些进程. 这个示例说明了应用程序的当前工作目录非常重要, 因为它仍保持着文件资源, 并且可以防止文件系统被卸载. 这就是为什么大部分守护进程 (后台进程) 将它们的目录更改为根目录, 或服务特定的目录 (如 sendmail 示例中的 /var/spool/mqueue) 的原因, 以避免该守护进程阻止卸载不相关的文件系统.
来源: http://www.bubuko.com/infodetail-2586554.html