ubuntu - 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 上发现了两个可能的讨论:
但他们没有解决我的问题,因为他们指的是 Docker 而我的问题是在 Bosh lite 上。我注意到 Bosh lite 有 garden-init 作为 PID 1 进程,它从 runit 系统开始。
有没有办法在我的 Bosh lite 容器中测试我的 systemd 服务?如果我可以手动启动 systemd 然后运行典型的 systemctl 命令也可以。这只是一个测试环境。
解决方案
docker -systemctl-replacement不需要运行 systemd 守护程序来启动某些*.service
文件中定义的服务。如果你不在 docker 中使用它,那么你可以只运行 systemctl.py 脚本而不安装它。
该工具的作用:它在标准目录中寻找一个patroni_fencer.service。它将查找 ExecStart 行,解释并执行它。exec'ed 命令与 systemctl.py 分离,因此它将重新分配给您系统上的 PID-1。
推荐阅读
- sql - 如何创建从表中读取的动态视图?
- excel - 如何使用 Office JS API 在 Excel 中对行或列进行分组
- git - 您的分支领先于“origin/foobranch” N 次提交 - 什么提交?
- drake - 在 Ubuntu 18.04 上本地安装 Drake 的问题
- java - 如何从 WebSphere Portal 页面获取页面名称?
- ruby - 如何在 Ruby 中修复“未初始化的常量 List::Task (NameError)”
- python - 是否可以在不删除 NaN 值的情况下修复“ValueError:无法将浮点 NaN 转换为整数”错误?
- kotlin - Kotlin - 带有溢出异常的类型转换
- c - STM32:将地址映射存储在数组中
- python - 如何将熊猫数据框中的边框添加到 html 表格行标题?