7

Я разрабатываю систему отображения для малярного цеха.
Я настроил компьютер с Ubuntu для запуска видео и показа его на телевизоре с PHP-скриптом, который должен обновлять видео каждый час через Интернет.

Скрипт настроен на запуск через cron и выполняется один раз в час (@hourly). Почти весь сценарий работает отлично, но последняя строка, где он выполняет VLC Media Player для отображения видео, молча терпит неудачу. Если скрипт запускается из командной строки (php /path/to/cron.php), VLC Media Player запускается отлично. Но когда он запускается в cron, это не так.

Мне кажется, что задания, выполняемые через cron, просто не имеют возможности запускать приложения с видимым графическим интерфейсом, но я действительно надеюсь, что это не ответ.

Пожалуйста, помогите мне взломать этот!

2 ответа2

6

Для отображения чего-либо на X-сервере X-клиенту (например, vlc) требуется установить переменную окружения DISPLAY , которая определяет сетевой адрес X-сервера. Почти во всех случаях (один локальный X-сервер) ему следует присвоить :0 .

Вы можете установить эту переменную из своего скрипта или просто запустить bash -c "DISPLAY=:0 vlc $vlcopts" (конечно, заменив $vlcopts).

2

Вы также можете использовать:

@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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .