You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS Stream 9上Podman的D-Bus与Systemd集成问题

问题解决:Podman用户systemd服务加载失败与Quadlet文件不生成.service问题

一、解决systemctl --user daemon-reload报错“Failed to connect to bus: No medium found”

该问题因SSH会话中用户D-Bus环境未正确初始化导致,处理步骤如下:

  • 启用用户持久化systemd会话,确保无活跃登录时用户systemd实例仍运行:
    loginctl enable-linger apideployer
    
  • 若启用linger后仍报错,在当前会话手动设置D-Bus环境变量:
    export XDG_RUNTIME_DIR=/run/user/$(id -u)
    
  • 验证D-Bus连接可用性:
    dbus-send --session --type=method_call --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListNames
    

二、解决Quadlet未生成对应的.service文件

1. 检查文件路径与权限

确认.container文件存放在$HOME/.config/containers/systemd/目录下,调整文件权限确保systemd可读取:

chmod 644 $HOME/.config/containers/systemd/oracle-db.container
chown apideployer:apideployer $HOME/.config/containers/systemd/oracle-db.container

2. 修正Quadlet文件语法错误

你的oracle-db.container存在语法问题,需调整:

  • [Container]段的Volume行等号后有多余空格,修改为:
    Volume=oracle-db.volume:/opt/oracle/oradata
    
  • 若oracle-db.network未提前创建,可先执行podman network create oracle-db.network创建,或在.container文件中添加[Network]段自定义网络配置。

3. 手动触发Quadlet生成.service文件

执行Podman专属命令扫描Quadlet文件并生成服务:

podman systemctl reload

生成的.service文件会自动存放在$HOME/.config/systemd/user/目录下。

4. 重新加载并启用服务

systemctl --user daemon-reload
systemctl --user enable --now oracle-db.service

内容的提问来源于stack exchange,提问作者Henrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:50:03