我正在运行一个程序,我希望在按下某个按钮时停止该程序。
我正在考虑在后台运行该过程,以便在此过程中随时按下该按钮,它会停止它。
我从文档中读取了子进程的内容,但我是初学者,我不知道如何使用它,任何帮助都表示赞赏。
def put(command):
os.system(command)
if direct == "":
time.sleep(.5)
arg1 = put("sudo ffmpeg -i \"" + q3 + "\" -f s16le -ar 22.05k -ac 1 - | sudo ./pifm - " + str(freq))
subprocess.Popen(arg1)
while True:
if RPIO.input(25) == GPIO.LOW: #if button is pushed, kill process (arg1)
Popen.terminate()
答案 0 :(得分:2)
如果要保持对子流程的控制,最好使用subprocess
模块。如果您是通过Popen
创建的,则可以通过kill()
或terminate()
方法将其停止。
实施例
import subprocess
# ...
sub = subprocess.Popen(command)
# ...
sub.kill()
即使有很多command
同时出现,你确定要杀死自己的孩子
答案 1 :(得分:0)
你需要在实例 od Popen:
上调用终止if direct == "":
time.sleep(.5)
arg1 = put("sudo ffmpeg -i \"" + q3 + "\" -f s16le -ar 22.05k -ac 1 - | sudo ./pifm - " + str(freq))
myproc = subprocess.Popen(arg1)
while True:
if RPIO.input(25) == GPIO.LOW: #if button is pushed, kill process (arg1)
myproc.terminate()