我正在为我的项目使用Google Cloud Firestore数据库。我正在尝试使用Python从数据库中检索数据,该数据是一个简单变量(1或0)。
因此,如果我从数据库中获得“ 1”,我想从当前的Python程序执行C ++程序。如果我得到一个“ 0”,我想终止那个正在运行的程序。
对此我有一些疑问,
从python运行C ++文件非常简单,但是如何 我如何终止它以及如何在尝试终止它之前检查它是否未运行
以下是我的python代码
import firebase_admin
import time
from firebase_admin import credentials
from firebase_admin import firestore
n=1
b=None
cred = credentials.Certificate('/Users/vijaypenmetsa/Desktop/key.json')
firebase_admin.initialize_app(cred)
db = firestore.client()
def on_snapshot(doc_snapshot, changes, read_time):
for doc in doc_snapshot:
a = doc.to_dict()
b = a["status"]
check(b)
#b is the variable retrieved from the database
def check(c):
if c == 1:
print("Start Driving")
elif c == 0:
print("Halt")
doc_ref = db.collection(u'status').document(u'carstatus')
while n>0:
doc_watch = doc_ref.on_snapshot(on_snapshot)
time.sleep(10)
答案 0 :(得分:0)
使用psutil可以查看进程是否正在运行。这里的链接肯定会对您有所帮助:https://thispointer.com/python-check-if-a-process-is-running-by-name-and-find-its-process-id-pid/
最终代码如下:
import psutil
def checkIfProcessRunning(processName):
'''
Check if there is any running process that contains the given name processName.
'''
#Iterate over the all the running process
for proc in psutil.process_iter():
try:
# Check if process name contains the given name string.
if processName.lower() in proc.name().lower():
return True
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
return False;
if checkIfProcessRunning('chrome'):
print('Yes a chrome process was running')
else:
print('No chrome process was running')
在这种情况下,我使用的是这个人的示例,因此检查chrome是否正在运行,但是您可以检查所需的内容
您可能希望通过在终端上运行以下代码为pip安装psutil:
pip3 install psutil
或
pip install psutil