我想让 crontab 命令优先于当前音频流 Ubuntu 18.04

我想让 crontab 命令优先于当前音频流 Ubuntu 18.04

mp3 将使用 crontab 在指定时间自动运行。

*/10 7-21 * * * play /home/mo/document/1.mp3
*/10 7-21 * * * sleep 20;play /home/mo/document/2.mp3
*/10 7-21 * * * sleep 40;play /home/mo/document/3.mp3

'play' 安装了 sox。

问题是,当您观看 YouTube 时,crontab 不起作用。Crontab 启动的音频将不会播放,直到当前播放的音频流关闭。

我想让 crontab 命令即使您正在观看 youtube 也能发挥作用。

答案1

直接输出至当前运行显示屏

根据这篇文章:

当另一个声音应用程序运行时,sox 无法作为 cron 条目执行

从 cronjob 运行 sox/play 需要导出 DISPLAY 变量,就像从 crontab 运行 GUI 应用程序一样。只需将其添加export DISPLAY=:0 &&到命令开头即可,如下所示:

*/10 7-21 * * * export DISPLAY=:0 && /usr/bin/play /home/mo/document/1.mp3

另外,请注意,处理 cronjobs 时最好使用绝对路径(/usr/bin/play),以免 cron 混淆。

相关内容