python - запустить медиа в браузере и выйти
У меня есть Python CGI / HTML, который принимает URL-адрес и запускается на обозрение обозрение. Однако, после того, как медиа / видео закончилось, мне нужно, чтобы браузер завершил работу. В других сообщениях, кажется, есть способы сделать это с vlc-media и другими игроками. Но я не нашел один с браузером.
Базовая структура вокруг команды выглядит так:
msg = form.getvalue("msg", "(no msg)")
.......
## in-progress of msg = "sudo -u vnc " + msg + " "
.......
from subprocess import *
print Popen(msg, shell=True, stdin=PIPE, stdout=PIPE).communicate()[0]
Как реализовать так, чтобы выполняемая команда (url) отключалась после завершения потоковой передачи (youtube, cnn и т. Д.)?
Благодарю.
1 ответ
Самый простой способ сделать это - использовать pkill
, Как вы собираетесь убить экземпляр epiphany
браузер в семействе операционных систем Unix, вы бы использовали что-то вроде:
import os
os.system("pkill epiphany-browser")
Если ваш исполняемый файл имеет имя, отличное от epiphany-browser
изменить вторую часть pkill
Команда, чтобы соответствовать.
Также имейте в виду, что это убьет все процессы с таким именем. Чтобы убить только самых новых, вы можете сделать что-то вроде:
import os
os.system("pkill -n epiphany-browser")
Если вы хотите быть действительно умным, вы можете попытаться отобразить фактический номер процесса после его запуска:
import os
# launch stuff...
epiphanyPID=os.system("pgrep -n epiphany-browser")[2]
# do other stuff...
os.system("kill -9 " + epiphanyPID)
Также вы должны, вероятно, использовать webbrowser
объект, а не открытие с Popen
, Не хватает close
насколько я понимаю из документации, но для открытия сессии это предпочтительное решение. Epiphany
поддерживается через Galeon
объект:
20,1. webbrowser - удобный контроллер веб-браузера