从中获得进程的PID

我有一个可执行文件的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