Для меня особой проблемой является использование Snapclient на Raspberry Pi.
У меня есть 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: «Не удается открыть аудиоустройство: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