我正在为一家油漆店开发一个显示系统。
我安装了一台装有 Ubuntu 的计算机来运行视频并将其显示在电视上,并运行一个 PHP 脚本,该脚本应每小时通过互联网更新视频。
该脚本设置为通过 cron 运行,每小时执行一次 (@hourly)。几乎整个脚本都运行正常,但最后一行执行 VLC Media Player 显示视频时却无声无息地失败了。如果通过命令行 ( php /path/to/cron.php
) 运行该脚本,VLC Media Player 可以正常启动。但当它在 cron 中运行时,它却无法启动。
我的想法是,通过 cron 运行的作业根本没有能力运行具有可见 GUI 的应用程序,但我真的希望这不是答案。
请帮我破解这个!
答案1
要在 X 服务器上显示某些内容,X 客户端(如)需要设置vlc
一个环境变量,该变量定义 X 服务器的网络地址。在几乎所有情况下(一个本地 X 服务器),它都应分配给。DISPLAY
: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