![Ubuntu 可以通过 cron 作业播放视频吗?](https://linux22.com/image/1248320/Ubuntu%20%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20cron%20%E4%BD%9C%E4%B8%9A%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%90%97%EF%BC%9F.png)
我正在为一家油漆店开发一个显示系统。
我安装了一台装有 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