如何使用Linux命令fuser强制终止占用特定目录的所有进程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计855个文字,预计阅读时间需要4分钟。
当某个目录被进程占用(例如卸载+/mnt/data+报错+device is busy)时,可以使用ps或lsof查询,但需要手动过滤路径、连接PID,然后+kill -9。这样做可能漏掉子进程或线程。专门针对这类场景的设计:
fuser -v /path 查看谁在用这个目录
加 -v(verbose)是安全前提,必须先执行,否则可能误杀:
-
fuser -v /mnt/backup会列出所有访问该路径的 PID、用户、命令、访问类型(cwd表示当前工作目录,fd表示打开的文件描述符,root表示 chroot 目录) - 注意输出中带
*的行——那是内核线程或无法获取命令名的进程,通常可忽略;重点看普通用户进程 - 如果看到
bash进程的cwd是该目录,说明有人正 cd 在里面;python3的fd指向某日志文件,则说明程序正在写入
fuser -k -i /path 安全强制终止
确认无误后才执行终止。
本文共计855个文字,预计阅读时间需要4分钟。
当某个目录被进程占用(例如卸载+/mnt/data+报错+device is busy)时,可以使用ps或lsof查询,但需要手动过滤路径、连接PID,然后+kill -9。这样做可能漏掉子进程或线程。专门针对这类场景的设计:
fuser -v /path 查看谁在用这个目录
加 -v(verbose)是安全前提,必须先执行,否则可能误杀:
-
fuser -v /mnt/backup会列出所有访问该路径的 PID、用户、命令、访问类型(cwd表示当前工作目录,fd表示打开的文件描述符,root表示 chroot 目录) - 注意输出中带
*的行——那是内核线程或无法获取命令名的进程,通常可忽略;重点看普通用户进程 - 如果看到
bash进程的cwd是该目录,说明有人正 cd 在里面;python3的fd指向某日志文件,则说明程序正在写入
fuser -k -i /path 安全强制终止
确认无误后才执行终止。

