使用python检查正在运行的python进程

时间:2017-07-30 22:31:23

标签: windows python-3.x

我有一个名为speech.py​​w的python脚本。我不希望它在运行时显示在屏幕上,所以我使用了那个扩展名。

如何使用其他python脚本检查此脚本是否正在运行?如果它没有运行,这个脚本应该启动它。

2 个答案:

答案 0 :(得分:1)

在我的头顶,至少有两种方法可以做到这一点:

  • 您可以让脚本在特定位置创建一个空文件,另一个脚本可以检查该文件。请注意,如果脚本不正确地退出,则可能必须手动删除该文件。
  • 您可以列出所有正在运行的进程,并检查第一个进程是否在这些进程中。这有点脆弱和平台依赖。

另一种混合策略是脚本创建特定文件并将其写入PID(进程ID)。转子脚本可以读取该文件,如果指定的PID要么不运行,要么不是脚本,它可以删除该文件。这也有点依赖于平台。

答案 1 :(得分:0)

!/usr/bin/env python2
import psutil
import sys

processName="wastetime.py"

def check_if_script_is_running(script_name):
    script_name_lower = script_name.lower()
    for proc in psutil.process_iter():
        try:
            for element in proc.cmdline():
                if element.lower() == script_name_lower:
                    return True
        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
            pass
    return False;

print(check_if_script_is_running(processName))
sys.stdin.readline()