如何从Python脚本中检查是否正在运行另一个特定的Python脚本?
def running():
for q in psutil.process_iter():
print q
if q.name() == 'server_class.py':
return True
return False
我试过了,但该程序被称为“python”,而不是脚本的名称。
答案 0 :(得分:1)
python脚本文件将成为命令行的一部分。你可以尝试这些方法:
def running():
for q in psutil.process_iter():
if q.name() == 'python':
print q.cmdline()
if len(q.cmdline())>1 and 'server_class.py' in q.cmdline()[1]:
return True
return False
我正在使用in
作为示例。您可能希望匹配完整路径。
答案 1 :(得分:-1)
案例: 要退出脚本时,如果先前的实例已经在运行:
def already_running(script_name):
num_instance = 0
for q in psutil.process_iter():
if 'python' in q.name():
if len(q.cmdline()) > 1 and script_name in q.cmdline()[1]:
num_instance += 1
return num_instance > 1
功能:
它检查当前正在运行的script_name
的实例数。如果您是从文件xyz.py
调用并发送xyz.py
作为参数,请记住,当前实例也将被计数
如果num_instance
> 1,则您正在运行以前的实例。
希望这很有用。