0

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

当我使用supervisorctlLiquidsoap 运行相同的应用程序时,尝试访问音频设备时实现失败:

[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")!

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

[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 时涉及任何其他硬件权限问题,有什么想法吗?

4

1 回答 1

1

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

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

sudo supervisorctl reload

现在,突然间我可以在没有 root/sudo 的情况下启动应用程序,并且可以完全访问音频硬件:

supervisorctl start aura-engine
于 2020-05-15T08:40:04.137 回答