[英]Starting and stopping subprocess with Python
我試圖通過MQTT
命令啟動和停止設備上的程序,但它並沒有按照我希望的方式運行。
要開始這個過程,我正在使用:
p = subprocess.Popen(["sh", "process.sh"])
哪個很好,它啟動程序。
在代碼的p.kill
行,我試圖用p.kill
或p.terminate
殺死/終止程序但它返回代碼:
p.terminate()
UnboundLocalError: local variable 'p' referenced before assignment
我正在使用的代碼是我自己的代碼,如下所示:
def on_message(client, userdata, msg):
if msg.payload == "start":
p = subprocess.Popen(["sh", "stream.sh"])
if msg.payload == "stop":
p.terminate()
p = None
def on_message(client, userdata, msg):
global p
if msg.payload == "start":
p = subprocess.Popen(["sh", "stream.sh"])
if msg.payload == "stop" and p:
p.terminate()
您必須將p定義為全局
def on_message(...):
global p
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.