Может ли 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

Другие вопросы по тегам