【问题标题】:Identifying python processes识别python进程
【发布时间】:2013-09-05 20:33:02
【问题描述】:

是否有唯一标识在 Windows 7 上运行的 python 进程?

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

【问题讨论】:

  • 你能修改你想杀死的那个python进程的代码吗?
  • 我需要杀死一个特定的 python 进程,因为安装程序会更新这个进程。有多个 python 进程正在运行('pythonw.exe')。
  • @jossgray 唯一可靠的方法是修改这个特定进程的代码,以便它将自己的 PID 存储在磁盘的某个位置。然后你就可以轻松杀死它了。

标签: python


【解决方案1】:

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

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

在遍历各种程序的命令行时要小心,它们有不同数量的元素并且不能可靠地解包(尽管我认为 python 3 对可变长度序列解包有一些支持)。总之,值得一试。

【讨论】:

  • len(p.cmdline) 将在任何 Python 版本上返回列表中的元素数。
  • 当然,我只是在盲目地警告prog, arg = p.cmdline
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 2016-12-10
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
相关资源
最近更新 更多