python - 如何在 Python 中杀死由 subprocess.Popen 运行的子进程(附代码)
问题描述
首先,我想为我的语言能力提前道歉,我正在尽力把它描述清楚。
[Python 在 Raspberri Pi3 B+ 上运行]
我试图杀死由 subprocess.popen 运行的子进程,我已经厌倦了搜索所有网络,但所有解决方案都对我不起作用。我是初学者,不确定我错过了什么,我认为如果有人能看到我的代码,那就更好了
在这里,我有运行子进程的代码
pid = subprocess.Popen([sys.executable,"01-Subprogram-serial.py"])
01-子程序-serial.py <<我的子程序
这是 raspberri pi 3 b+ 同时用于视频播放和 LED 控制
我正在使用 Tkinter 运行播放视频的按钮命令并使用串行设备控制运行子程序,子程序仅适用于第一次运行的程序,但由于我无法杀死它,即使我更改为另一个命令,子程序仍在运行。
from tkinter import *
from tkinter import messagebox
import os
import sys
import subprocess
import signal
from subprocess import Popen, PIPE
import serial
import time
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=.5)
top = Tk()
movie1 = ("/home/pi/Videos/VID_chap1.mp4")
movie2 = ("/home/pi/Videos/VID_chap2.mp4")
movie3 = ("/home/pi/Videos/VID_chap3.mp4")
def vid1():
os.system('killall omxplayer.bin')
omxc = Popen(['omxplayer','--layer','2','--win','0,0,800,481', movie1])
pid = subprocess.Popen([sys.executable,"01-Subprogram-serial.py"])
# subprocess.popen.kill(pid) <This not works
def vid2():
os.system('killall omxplayer.bin')
omxc = Popen(['omxplayer','--layer','2','--win','0,0,800,481', movie2])
pid = subprocess.Popen([sys.executable,"02-Subprogram-serial.py"])
# subprocess.popen.kill(pid) <This not works
def vid3():
os.system('killall omxplayer.bin')
omxc = Popen(['omxplayer','--layer','2','--win','0,0,800,481', movie3])
pid = subprocess.Popen([sys.executable,"03-Subprogram-serial.py"])
# subprocess.popen.kill(pid) <This not works
B = Button(top, text ="Asean 1", command = vid1)
C = Button(top, text ="Asean 2", command = vid2)
D = Button(top, text ="Asean 3", command = vid3)
B.pack()
C.pack()
D.pack()
top.mainloop()
我想在前一个子进程启动一个新子进程之前杀死它
解决方案
推荐阅读
- json - 使用变量查找值。JSON Alexa 技能
- xaml - 使用基本抽象类时,带有 ObservableCollection 的 UWP DependencyProperty 不会更新 UI
- google-tag-manager - 谷歌标签管理器无效或意外的令牌
- php - 在 laravel 表单请求验证中与 gte 一起使用时无法比较整数和浮点值
- python - 尚未实施为 fillna 指定限制
- flutter - Flutter 有编辑布局的实时预览吗?
- gnucash - GNUCash - 它可以根据某些帐户的先前条目/总数计算新交易的价值吗?
- wordpress - 通过 wordpress 标签过滤 Istope 列表
- c# - 使用“欧洲/德国”等时区查找时区 ID
- javascript - Webpack 找不到动态(js)添加的背景图片