在我的Python脚本中,我想检查otherscript.py
当前是否在(Linux)系统上运行。 psutil库看起来是一个很好的解决方案:
import psutil
proc_iter = psutil.process_iter(attrs=["name"])
other_script_running = any("otherscript.py" in p.info["name"] for p in proc_iter)
问题在于
p.info["name"]
仅给出进程可执行文件的名称,而不是完整命令的名称。因此,如果python otherscript.py
在系统上执行,则p.info["name"]
只是该进程的python
,而我的脚本无法检测到otherscript.py
是否正在运行。是否有使用psutil或其他库进行此检查的简单方法?我意识到我可以将
ps
命令作为子进程运行,并在输出中查找otherscript.py
,但是如果存在的话,我更喜欢一种更优雅的解决方案。 最佳答案
我想知道这是否有效
import psutil
proc_iter = psutil.process_iter(attrs=["pid", "name", "cmdline"])
other_script_running = any("otherscript.py" in p.info["cmdline"] for p in proc_iter)