systemd 上的音訊設備與命令列上的服務繁忙

systemd 上的音訊設備與命令列上的服務繁忙

對我來說,一個特定的問題是在樹莓派上使用 snapclient。

我有 snapclient 與語音助理一起運行。如果我使用命令列啟動 snapclient

sudo snapclient -h 192.168.x.xxx -s 3 --player=alsa &

然後我的語音助理可以輸出到相同的音訊輸出,並且我聽到兩個串流。

如果我使用systemd啟動

sudo systemctl start snapclient.service

然後語音助理音訊因設備/資源繁忙而被阻止。

使用 htop (很可能有更好的方法來做到這一點)我可以在通過 systemd 啟動時看到用戶和完整的參數列表,並且當我從命令行運行時完全複製它,但無濟於事。

有人可以建議我需要了解什麼才能讓它從 systemd 運行相同的內容,或者是否最好透過 rc.local 來做到這一點?歡迎任何有關如何學習這一點的建議。

我確信這可能是權限問題,但我不知道如何尋找後續步驟。

答案1

我在使用 alsa 播放 ubuntu/orangepi 上的服務中的音訊時遇到了類似的問題「無法開啟音訊 hw:0: 裝置或資源繁忙」。

我可以透過在單元配置中新增“Requires=dbus.service”和“Environment=DISPLAY=:0”來解決這個問題。

這是我的工作單元設定檔:

[Unit]
Description=Buttons sound app
Requires=dbus.service

[Service]
ExecStart=/home/orangepi/runSoundServer.sh
User=orangepi
Environment=DISPLAY=:0

[Install]
WantedBy=multi-user.target

相關內容