如何查找占用.nfs文件的进程并终止,在Makefile中实现自动化清理
Makefile自动化清理带NFS占用文件的sim_build目录方案
直接使用以下Makefile目标即可实现一键清理:
clean_sim: # 递归查找sim_build下所有.nfs*文件,终止占用对应文件的进程,无匹配文件时不报错 -find sim_build -type f -name '.nfs*' -exec fuser --kill {} + # 直接删除整个sim_build目录 rm -rf sim_build
如果需要集成到现有clean目标中,直接把两条执行语句追加到clean目标的命令列表里即可。
方案优势
- 用
find递归遍历所有子目录,不会遗漏深层路径下的.nfs*占用文件 - 命令前的
-前缀会让Makefile忽略该命令的执行错误,不存在.nfs*文件时也不会中断清理流程 - 杀进程后无需单独删除.nfs*文件,
rm -rf可一次性清理整个目录,步骤更简洁
注意事项
- 如果sim_build不在当前工作目录下,将
find命令中的sim_build替换为实际的目录路径即可 - 执行该目标时需要拥有对应占用进程的终止权限,否则fuser杀进程操作会失败
内容的提问来源于stack exchange,提问作者M.X
相关产品推荐
相关产品推荐

