Python检查进程是否正在运行


问题内容

我正在尝试创建一个Python脚本,稍后将其作为服务运行。现在,我只想在iTunes运行时才运行代码的特定部分。我从一些研究中了解到,轮询整个命令列表然后为该列表搜索应用程序是很昂贵的。

我发现基于UNIX的操作系统上的进程会创建一个锁定文件来通知程序当前正在运行,这时我们可以os.stat(location_of_file)用来检查文件是否存在以确定程序是否正在运行。

在Windows上是否创建了类似的锁定文件?

如果不是,我们可以通过Python中的各种方法来确定进程是否正在运行?

我正在使用python 2.7和iTunes COM接口。


问题答案:

您不能依赖Linux或Windows中的锁定文件。我只是硬着头皮,遍历所有正在运行的程序。我真的不相信它会像您想的那样“昂贵”。
psutil是一种出色的跨平台python模块电缆,用于枚举系统上所有正在运行的程序。

import psutil    
"someProgram" in (p.name() for p in psutil.process_iter())