Может ли Ubuntu воспроизводить видео с помощью cron job?
Я разрабатываю систему отображения для малярного цеха.
Я настроил компьютер с Ubuntu для запуска видео и отображения его на телевизоре, используя скрипт PHP, который должен обновлять видео каждый час через Интернет.
Скрипт настроен на запуск через cron, выполняется один раз в час (@hourly). Почти весь сценарий работает идеально, но последняя строка, где он выполняет VLC Media Player для отображения видео, молча терпит неудачу. Если скрипт запускается из командной строки (php /path/to/cron.php
), VLC Media Player запускается отлично. Но когда он запускается в cron, это не так.
Мне кажется, что задания, выполняемые через cron, просто не имеют возможности запускать приложения с видимым графическим интерфейсом, но я действительно надеюсь, что это не ответ.
Пожалуйста, помогите мне взломать этот!
2 ответа
Чтобы отобразить что-то на X-сервере X-клиент (например, vlc
) требуется переменная окружения DISPLAY
быть установленным, который определяет сетевой адрес X-сервера. Почти во всех случаях (один локальный X-сервер) он должен быть назначен :0
,
Вы можете установить эту переменную из вашего скрипта или просто запустить bash -c "DISPLAY=:0 vlc $vlcopts"
вместо (конечно, замена $vlcopts
).
Вы также можете использовать:
@hourly screen -d -m vlc-wrapper /path/to/file/foo.flv --novideo --volume 700 --repeat --rc-fake-tty
Чтобы заставить работать VLC. Здесь есть подробный процесс: http://michaelchrisco.com/wiki/index.php?title=Set_up_VLC_as_a_cron_job