开发者社区 问答 正文

C ++ Windows-通过可执行文件路径获取进程的PID

这是众所周知的,经常被问到如何从进程的PID获取完整的可执行文件路径。但是,我需要相反的事情:我需要找到从绝对路径到其可执行文件的进程的PID。有没有最简单的方法,或者我应该获取所有PID并手动验证可执行路径?

为什么我需要那?我需要终止该进程的垃圾实例,但不要杀死与我应终止的进程同名的其他进程。

展开
收起
被纵养的懒猫 2019-09-24 20:17:49 672 分享
分享
版权
举报
阿里云 AI 助理回答

在Linux系统中,你可以使用pgrep命令结合正则表达式来直接根据可执行文件的完整路径找到对应的进程PID。这样可以避免遍历所有进程并手动验证的繁琐过程。

例如,如果你知道要终止的进程的完整路径是/usr/local/bin/my_process,你可以使用以下命令:

pgrep -f /usr/local/bin/my_process

这里的-f选项告诉pgrep命令去匹配进程的完整命令行,包括路径。这将返回所有与该路径匹配的进程PID。

如果你想直接杀死这些进程,可以在上面的命令后面加上| xargs kill,这样就可以批量终止这些进程了:

pgrep -f /usr/local/bin/my_process | xargs kill

或者,如果你有sudo权限,并且需要的话,可以使用sudo-9信号强制终止:

pgrep -f /usr/local/bin/my_process | xargs sudo kill -9

请谨慎使用这些命令,确保你正确地指定了进程路径,以免误杀其他重要进程。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答