从 crontab 运行 canberra-gtk-play

从 crontab 运行 canberra-gtk-play

我想通过 crontab 运行以下命令:

30 12 * * * natasha /usr/bin/canberra-gtk-play --file="/home/natasha/Audio/Dat_Jene_Tabletki.wav" --volume=15 --loop=3

但该命令没有执行。直接从命令行运行相应的命令即可。

线条

4 12 * * * natasha /usr/bin/cvlc /home/natasha/Audio/Dat_Jene_Tabletki.wav 55 16 * * * natasha /usr/local/bin/mpg123 -q /home/natasha/Downloads/file.mp3

使用 crontab 可以正确执行,但 canberra-gtk-play 不起作用。

有人可以帮我解决这个问题吗?

我的系统是 openSUSE 42.1。

先感谢您。

问候,娜塔莉亚

答案1

canberra-gtk-play 无法通过 cron 运行,因为正如其名称所示,它依赖于 GTK+ 图形工具包 - 这需要 Xorg 或另一个 X11 或 Wayland 服务器才能访问。

Cron 作业无法轻松访问 X11,因为服务器的地址并不总是相同 - 您可以尝试设置DISPLAY=":0"XAUTHORITY=…但重新启动后它们可能会有所不同。

相比之下,PulseAudio 声音服务的地址始终位于固定位置,在不使用 PA 的系统上,只需直接访问 /dev 即可。

(如果你碰巧正在运行 Wayland,那么 canberra-gtk-play 应该能够连接到它,但是。)


我建议忘记,canberra-gtk-play因为...如果你想要的只是播放声音,为什么您还会费心使用需要 X11 的工具吗?

更好的选择是paplay或者mpv甚至mplayer

相关内容