[英]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
它能做什么:
它檢查當前運行的script_name
的實例數。 如果您從文件xyz.py
調用它並將xyz.py
作為參數發送,請記住當前實例也將被計算在內
如果num_instance
> 1,則您有一個先前的實例正在運行。
希望這是有用的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.