在 nspawn 容器中运行时,具有私有网络的 Systemd 服务失败

问题描述

我正在运行一个 systemd nspawn 容器,并注意到许多内置的 systemd 服务处于失败状态。经过调查,我发现失败的服务都在使用PrivateNetwork=yes。查看服务的日志,该服务似乎未能创建 PrivateNetwork 指令请求的网络命名空间。

我尝试将 Capabilities=all 授予我的 nspawn 容器,但仍然遇到相同的问题。

Nspawn 容器配置:

[Exec]
Boot=true
ResolvConf=off
Timezone=off

[Files]
Bind=/usr/bin/qemu-arm-static
PrivateUsersChown=true

[Network]
VirtualEthernet=false

这是一个显示问题的示例 systemd 单元:

[Unit]
Description=Test

[Service]
ExecStart=/usr/bin/sleep infinity
PrivateNetwork=yes

这是我尝试在 nspawn 容器中运行上述单元后 systemctl status 的输出:

x example.service - Test
     Loaded: loaded (/etc/systemd/system/example.service; static)
     Active: failed (Result: exit-code) since Fri 2021-04-02 18:36:31 PDT; 3s ago
    Process: 414 ExecStart=/usr/bin/sleep infinity (code=exited,status=225/NETWORK)
   Main PID: 414 (code=exited,status=225/NETWORK)

Apr 02 18:36:31 panamint systemd[1]: Started Test.
Apr 02 18:36:31 panamint systemd[414]: example.service: Failed to set up network namespacing: Input/output error
Apr 02 18:36:31 panamint systemd[414]: example.service: Failed at step NETWORK spawning /usr/bin/sleep: Input/output error
Apr 02 18:36:31 panamint systemd[1]: example.service: Main process exited,code=exited,status=225/NETWORK
Apr 02 18:36:31 panamint systemd[1]: example.service: Failed with result 'exit-code'.

主机操作系统是运行 systemd 248 的 arch linux 5.11.11,来宾是运行 qemu 仿真和 systemd 版本 248 的 arch linux ARM 5.10.25。

关于如何在 nspawn 容器中运行私有网络的任何建议?谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...