我有一个可执行文件的path。 假设我想删除这个文件。
我需要find使用这个文件启动的所有进程并杀死它们。 什么是最好的办法呢?
也许lsof (列表打开文件)可以帮助你。
列出使用特定文件的所有进程:
lsof /path/to/your/specific/file
添加-t
选项只会返回使用给定文件的PID。
所以,从那里,你可以杀死所有使用特定文件的进程:
lsof -t /path/to/your/specific/file | while read PID; do kill -9 $PID; done
或者类似的东西:
kill -9 $(lsof -t /path/to/your/specific/file)
现在,假设您处于* nix世界,您可以使用fuser
命令。
fuser <file_name>
将列出你使用该文件处理所有的pid。 为了杀死访问该文件的进程,
fuser -k <file_name>
假设您指的是Windows,则可以使用Windows SysInternals套件中的Process Monitor