识别python进程

识别python进程,python,Python,是否存在唯一标识Windows 7上运行的python进程的方法 我正在编写一个安装程序,需要杀死一个python进程才能继续安装,问题是有多个python进程正在运行,我需要确保杀死了正确的进程 假设您知道第一次调用程序的命令行,它可能是这样的: for p in psutil.get_process_list(): if p.cmdline[0].endswith('pythonw.exe') and p.cmdline[1] == 'myscript.py': print p.

是否存在唯一标识Windows 7上运行的python进程的方法


我正在编写一个安装程序,需要杀死一个python进程才能继续安装,问题是有多个python进程正在运行,我需要确保杀死了正确的进程

假设您知道第一次调用程序的命令行,它可能是这样的:

for p in psutil.get_process_list():
  if p.cmdline[0].endswith('pythonw.exe') and p.cmdline[1] == 'myscript.py':
    print p.pid

但是,在遍历各种程序的cmdline时要小心,它们的元素数不同,无法可靠地解包(尽管我认为python3支持可变长度序列解包)。无论如何,值得一试。

你能修改你想杀死的python进程的代码吗?看看这个或这个:我需要在安装程序更新这个进程时杀死一个特定的python进程。有多个python进程正在运行('pythonw.exe')。@jossgray唯一可靠的方法是修改此特定进程的代码,以便它将自己的PID存储在磁盘上的某个位置。然后你可以很容易地杀死它。
len(p.cmdline)
会在任何Python版本上返回列表中的元素数。当然,我只是警告不要盲目地使用
prog,arg=p.cmdline