Найти - Пользователи
Полная версия: Не получается убить процесс
Начало » Python для новичков » Не получается убить процесс
1
george31
По клику на окошке программы запускается видеофайл. Но никак не получается прервать его воспроизведение. Сама программа закрывается, а видеофайл проигрывается до конца
import pygame
from pygame.locals import *
import subprocess
PIPE = subprocess.PIPE
cmd = 'omxplayer -o hdmi 1.MPG'
cmd2 = 'sudo kill '
running = True
pygame.init()
window = pygame.display.set_mode((300,300))
window.fill(pygame.Color(0,0,0))
fps = pygame.time.Clock()
global p
while running:
for event in pygame.event.get():
if event.type == MOUSEBUTTONDOWN:
p = subprocess.Popen(cmd, shell = True)
pk = p.pid
cmd2=cmd2+str(pk)
if event.type == pygame.KEYDOWN:
running = False
print cmd2
subprocess.Popen(cmd2, shell = True)
pygame.display.update()
fps.tick(30)
pygame.quit()
kampella
Зачем sudo ?
george31
kampella
Зачем sudo ?
Чтоб наверняка))
Без sudo все равно не закрывается
Rodegast
import os
import signal
os.kill(int(p.pid), signal.SIGTERM)
os.waitpid(int(p.pid), 0)
george31
Rodegast
Разобрался почему не получается закрыть видео: p.pid возвращает не идентификатор “omxplayer”, а “sh” . Если использовать
subprocess.Popen('pkill omxplayer', sheel = True)
, то видео закрывается, но хотелось бы узнать как получить идентификатор запущенного “omxplayer” после клика мышки.
Rodegast
> p.pid возвращает не идентификатор “omxplayer”, а “sh”

Не надо его запускать в отдельном шеле, тогда и pid будет правильным. pid omxplayer и pid sh скорей всего будут отличатся на 1, но это не всегда гарантируется.
george31
Rodegast
> p.pid возвращает не идентификатор “omxplayer”, а “sh” Не надо его запускать в отдельном шеле, тогда и pid будет правильным. pid omxplayer и pid sh скорей всего будут отличатся на 1, но это не всегда гарантируется.
А как сделать так, чтобы omxplayer не запускался в отдельном шеле?
Rodegast
p = subprocess.Popen(cmd)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB