![我想让 crontab 命令优先于当前音频流 Ubuntu 18.04](https://linux22.com/image/1159735/%E6%88%91%E6%83%B3%E8%AE%A9%20crontab%20%E5%91%BD%E4%BB%A4%E4%BC%98%E5%85%88%E4%BA%8E%E5%BD%93%E5%89%8D%E9%9F%B3%E9%A2%91%E6%B5%81%20Ubuntu%2018.04.png)
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 混淆。