[英]Python subprocess, kill process after timed delay
我是第一次使用Python和Raspberry Pi(這是Pi 2),並試圖觸發一組定時命令。 除了最后階段(我想終止所有進程)外,我已經弄清了大部分內容。
邏輯如下:
-觸發名為“倒數”的音頻文件(.wav)
-觸發另一個名為“ dixie”的音頻文件(.wav)
-在dixie播放時觸發wget命令以觸發相機上的照片
-繼續播放“ dixie”,直到上一個wget完成執行
-wget完成執行后,停止播放“ dixie”
-觸發名為“掌聲”的最終音頻文件(.wav)
- 停止所有音頻
本質上,wget是重要的,播放音頻文件只是為了在我的相機拍攝照片時創造音樂。 當wget完成並且掌聲結束時,我想殺死所有音頻,但是“ dixie”的subprocess.Popen命令繼續播放(大約40秒長)。 我如何才能結束這個過程?
到目前為止,這是我的代碼:
import os
import time
import subprocess
subprocess.call(["aplay countdown.wav"], shell=True)
subprocess.Popen(["aplay dixie.wav"], shell=True)
subprocess.call(["wget 'http://10.5.5.9/camera/SH?t=12345678&p=%01' -O-"], shell=True)
time.sleep(5)
subprocess.call(["aplay applause.wav"], shell=True)
subprocess.Popen.kill(["aplay dixie.wav"], shell=True)
我要在“掌聲”播放完畢后殺死“ dixie”。
我的代碼產生錯誤:
"unbound method kill() must be called with Popen instance as first
argument (got list instance instead)"
有什么建議嗎?
我建議這樣做:
proc = subprocess.Popen(["aplay dixie.wav"], shell=True)
# do something
proc.terminate()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.