Crontab 不会执行 vlc 直播

use*_*095 5 cron

我试图通过 crontab 中的 vlc 自动启动和停止 rtps 流:

sudo crontab -e
15 9 * * * vlc -vvv rtsp://user:pwd@xxx.xxx.xxx:xxx/stream1
Run Code Online (Sandbox Code Playgroud)

nano /etc/crontab
14 9 * * * camera vlc -vvv rtsp://admin:TmT01@80.112.134.3:554/stream1
Run Code Online (Sandbox Code Playgroud)

如果我将命令粘贴到终端中,则流打开时不会出现问题,但是当我通过以这种方式使其成为 cronjob 并在未来安排 2 分钟进行测试来测试它时,没有任何反应。

我做错了什么或者有人可以帮助我吗?

Jan*_*ary 5

这是因为 crontab 作业没有连接到您的桌面。crontab 的目的是运行无头作业——没有任何交互式输出或图形显示,并且只将消息记录到文件中。Crontab 与您的图形显示没有任何联系。但是,您可以尝试通过设置DISPLAY环境变量来提供有关您的显示器的信息。

像这样的事情可能会奏效:

* * * * * DISPLAY=:0.0 vlc -vvv rtsp://your.url 2>&1 > /tmp/vlc.log
Run Code Online (Sandbox Code Playgroud)

请注意,您仍然无法看到你当前终端的VLC输出- crontab的运行时间表,而无需任何想法你当前的终端或终端仿真器是什么。因此,如果您想要详细信息或日志记录,您应该将输出保存到文件中。

后记:Erik 是对的,如果您的命令是由 root 启动的,您还需要处理 XAUTHORITY。但是,如果您从自己的 crontab 启动 vlc,则不必这样做。