在我的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)

08-24 23:31