![本地 crontab 中运行的 pacmd 命令不起作用](https://linux22.com/image/1621307/%E6%9C%AC%E5%9C%B0%20crontab%20%E4%B8%AD%E8%BF%90%E8%A1%8C%E7%9A%84%20pacmd%20%E5%91%BD%E4%BB%A4%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我尝试在启动时运行某些命令,以允许我的音频通过 FIFO 传输到文件中。如果我运行这些命令(手动或脚本),它会正常工作。但是,当我将它们放入本地 crontab -e 中时,命令会抛出错误。
一个示例命令:
pacmd load-module module-pipe-sink file=/tmp/snapfifo/bt sink_name=Bluetooth format=s16le rate=48000
如果我从 crontab 或以 sudo 运行它,我会得到:
无法访问主目录。没有 PulseAudio 守护进程正在运行,或者没有作为会话守护进程运行。
如果我以我的用户身份(sudo -u USER)运行此命令,只会出现此错误:没有运行 PulseAudio 守护程序,或者没有作为会话守护程序运行。
我已经为此寻找解决方案超过 5 小时了,并尝试加载环境和用户用户 PATH,但没有任何帮助。希望有人知道我如何在启动时自动运行命令。
答案1
终于找到答案了:
脚本需要参考如下:
导出PULSE_RUNTIME_PATH =“/运行/用户/$(id -u)/脉冲/”
要检查正确的路径:
回显 ${XDG_RUNTIME_DIR}
使用以下命令运行脚本:
sudo -u 用户名 -H