Ali*_*Ali 2 bash cron raspberry-pi
我正在尝试让我的Raspberry Pi目前连接到蓝牙扬声器,每天按计划播放音频文件,我的cron工作正在更新,@daily以获得新的时间(这基本上是祈祷)
crontab -l
@daily /home/pi/athan/update_prayers.sh
39 05 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #fajr
31 12 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #dhuhr
34 15 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #asr
05 18 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #maghrib
24 19 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #isha
Run Code Online (Sandbox Code Playgroud)
所以,以上是我现在所拥有的,这是内容 /home/pi/athan/update_prayers.sh
#!/bin/bash
/home/pi/.nvm/versions/node/v7.5.0/bin/node /home/pi/athan/set_prayer.js
Run Code Online (Sandbox Code Playgroud)
基本上我set_prayer.js只是使用这个https://www.npmjs.com/package/crontab模块来设置crontab,我能够每天更新它没问题.现在我正在Mplayer播放音频,这是我使用的命令:
/home/pi/athan/call_prayer.sh
#!/bin/bash
/usr/bin/mplayer /home/pi/athan/athan.mp3
Run Code Online (Sandbox Code Playgroud)
我的问题是,当cron作业运行的时候没有声音或我甚至不知道作业是否正在运行,但是当我手动执行时,我可以听到正在播放的音频没问题.我也尝试在这里直接运行它/usr/bin/omxplayer -o alsa /home/pi/athan/athan.mp3而不是运行bash脚本,它似乎不适用于cron,但直接运行命令时工作正常.
小智 9
我正在努力解决类似的问题(如果命令是从crontab运行的话,蓝牙扬声器上没有音频.
问题是混合pulseaudio/crontab和环境设置.
以下解决方案适用于我:https: //wiki.archlinux.org/index.php/PulseAudio#Play_sound_from_a_non-interactive_shell_.28systemd_service.2C_cron.29
所以基本上只需要crontab -e添加以下内容:
XDG_RUNTIME_DIR=/run/user/user_id
Run Code Online (Sandbox Code Playgroud)
可以通过以下命令找到用户标识:
id [user_name]
Run Code Online (Sandbox Code Playgroud)