Supervisor 服务无权访问音频设备 ("Error while setting open_pcm: No such file or directory")

Supervisor service doesn't have access to audio device ("Error while setting open_pcm: No such file or directory")

我正在使用 Supervisor 妖魔化 Python / Liquidsoap 应用程序。当我从命令行启动应用程序时,一切正常。

当我 运行 使用 supervisorctl 同一应用程序时,Liquidsoap 实现在尝试访问音频设备时失败:

[lineout:3] Using ALSA 1.1.8.
[clock.wallclock_alsa:2] Error when starting output lineout: Failure("Error while setting open_pcm: No such file or directory")!

通过 ALSA 访问 USB 音频接口。主管配置具有正确的用户集,并且服务是用这个用户启动的:

[program:aura-engine]
user = engineuser
directory = /opt/aura/engine
command = /opt/aura/engine/run.sh engine

priority = 666
autostart = true
autorestart = true
stopsignal = TERM

redirect_stderr = true
stdout_logfile = /var/log/aura/engine-core-stdout.log
stderr_logfile = /var/log/aura/engine-core-error.log

如果在使用 Supervisord 时涉及任何额外的硬件权限问题,您有什么想法吗?

事实证明,使用 root 启动应用程序(Supervisor 配置中的 root 用户,但也以 root 身份启动 supervisord,加上使用 sudo supervisorctl start... 启动服务)成功授予访问音频硬件。但是 运行 作为 root 的应用程序不是一个选项。这也会发出 Supervisor 的警告。

然后我将配置返回到所需的 engineuser,并使用 sudo 重新加载配置:

sudo supervisorctl reload

现在,突然之间,我无需 root/sudo 即可启动应用程序,并且可以完全访问音频硬件:

supervisorctl start aura-engine