通过Linux服务调用时出现困难的记录

问题描述 投票:0回答:1

我正在尝试将 arecord 与 Linux 服务一起使用。深入的 Linux 服务将调用 python 命令实用程序,并且在内部 python 将使用子进程调用 arecord。

在 shell 中使用 arecord 命令时,它按预期工作正常。 但是当它作为服务(/etc/systemd/system)运行时,它会失败并出现错误: 错误:

arecord: main:867: audio open error: Host is down

我试图寻找记录的开源代码,但没有找到任何必要的东西。 主要是错误:

Host is down
造成了混乱。我以为是网络问题

linux subprocess
1个回答
0
投票

Linux 服务在新的(不同的)环境中运行。 默认情况下,它缺少运行记录所需的环境变量。 arecord 期待

XDG_RUNTIME_DIR

使用

XDG_RUNTIME_DIR=/run/user/<UID>
您可以通过
id
命令获取UID。

您可以将此变量添加到 .service 文件或使用此调用命令 就像'XDG_RUNTIME_DIR=/run/user/arecord'

© www.soinside.com 2019 - 2024. All rights reserved.