簡體   English   中英

檢查特定的 Python 腳本是否已經在運行

[英]Check if a particular Python script is already running

如何從 Python 腳本檢查另一個特定的 Python 腳本是否正在運行?

def running():
    for q in psutil.process_iter():
        print q
        if q.name() == 'server_class.py':
            return True
    return False

我已經嘗試過,但該程序被稱為“python”而不是腳本的名稱。

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僅用於示例。 您可能想要匹配完整路徑。

案例:當您想退出腳本時,如果前一個實例已經在運行:

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

它能做什么:

  1. 它檢查當前運行的script_name的實例數。 如果您從文件xyz.py調用它並將xyz.py作為參數發送,請記住當前實例也將被計算在內

  2. 如果num_instance > 1,則您有一個先前的實例正在運行。

希望這是有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM