【发布时间】:2019-09-24 12:09:30
【问题描述】:
众所周知并且经常被问到如何从其 PID 获取可执行文件的完整路径。但是,我需要相反:我需要从其可执行文件的绝对路径中找到进程的 PID。
有没有一种简单的方法可以做到这一点,或者我应该获取所有 PID 并手动比较可执行路径?
我为什么需要它?我需要终止这个进程的垃圾实例,而不杀死与我应该终止的进程同名的其他进程。
【问题讨论】:
-
看看 POSIX 函数。
-
枚举所有进程,如果名称匹配 - 进程的查询路径
-
你有想要保留的进程ID吗?
-
如果您有相同的进程名称但使用不同的 pid,您认为如何区分终止哪个 pid 和不终止哪个 pid?
-
要弄清楚这一点,我应该使用我运行的可执行文件的绝对路径,它是相同的,也没有。如果名称匹配但不匹配绝对路径,则它是一个要保留的 PID。