首页 > 解决方案 > Bosh lite 中的“无法连接到总线:没有这样的文件或目录”

问题描述

我在我的机器上运行 Bosh lite,在 Ubuntu 16.04 Stemcell 上运行的三个花园容器上部署了一个 Patroni 集群。我创建了一个 systemd 服务,我想在这个测试环境中使用它,但我无法启动它。

问题是 Bosh lite 默认情况下不以 systemd 开头,如果我运行:

systemctl --user start patroni_fencer.service

我收到以下错误:

Failed to connect to bus: No such file or directory

我在 StackOverflow 上发现了两个可能的讨论:

连接总线失败:没有这样的文件或目录

systemd 服务无法连接到会话 d-bus

但他们没有解决我的问题,因为他们指的是 Docker 而我的问题是在 Bosh lite 上。我注意到 Bosh lite 有 garden-init 作为 PID 1 进程,它从 runit 系统开始。

有没有办法在我的 Bosh lite 容器中测试我的 systemd 服务?如果我可以手动启动 systemd 然后运行典型的 systemctl 命令也可以。这只是一个测试环境。

标签: ubuntusystemdcf-bosh

解决方案


docker -systemctl-replacement不需要运行 systemd 守护程序来启动某些*.service文件中定义的服务。如果你不在 docker 中使用它,那么你可以只运行 systemctl.py 脚本而不安装它。

该工具的作用:它在标准目录中寻找一个patroni_fencer.service。它将查找 ExecStart 行,解释并执行它。exec'ed 命令与 systemctl.py 分离,因此它将重新分配给您系统上的 PID-1。


推荐阅读