我在我的机器上运行Bosh lite,并在其中将Patroni群集部署在Ubuntu 16.04 Stemcell上运行的三个花园容器上。我创建了一个systemd服务,我想在此测试环境中使用它,但是我无法启动它。
问题在于,默认情况下,Bosh lite不会以systemd开头,并且如果我运行的话:
systemctl --user start patroni_fencer.service
我遇到以下错误:
Failed to connect to bus: No such file or directory
我在StackOverflow上发现了两个可能的讨论:
Failed to connect to bus: No such file or directory
systemd servicefailed to connect to session d-bus
但是他们不能解决我的问题,因为他们指的是Docker,而我的问题在Bosh lite上。我注意到Bosh lite将garden-init作为PID 1进程,并且以runit系统开始。
是否可以在Bosh lite容器中测试我的systemd服务? 如果可以手动启动systemd然后运行典型的systemctl命令,也可以。这只是一个测试环境。
答案 0 :(得分:0)
docker-systemctl-replacement不需要运行的systemd守护程序即可启动某些*.service
文件中定义的服务。如果您不在docker内部使用它,则可以直接运行systemctl.py脚本而不安装它。
该工具的作用:它在标准目录中查找patroni_fencer.service。它将查找ExecStart行,对其进行解释和执行。 exec'ed命令与systemctl.py分离,因此无论系统上的哪个,它都将重新关联到PID-1。