systemd ignores services from overlayFS
我想用另一个分区(应用程序文件系统)上的应用程序构建系统。属于该应用程序的所有二进制文件,配置文件和服务文件都应位于app-fs中。
我正在使用以下版本:内核4.9.x,systemd v234。
应用程序分区安装在/ opt上,其中包括以下文件:
1 2 3 | /opt/usr/bin/app-binary /opt/etc/systemd/system/multiuser.target/link_2_app.service /opt/lib/systemd/system/app.service |
以下是服务文件:
1 2 3 4 5 6 7 8 9 10 | [Unit] Description=The application description. After=syslog.target basic.target [Service] ExecStart=/opt/usr/bin/app-binary Type=simple [Install] WantedBy=multi-user.target |
要与rootfilesystem同步文件,我创建了2个覆盖图,可能是/ etc / fstab条目(对不起,格式,一行无效):
1 2 3 | /dev/app-partition /opt auto defaults,x-systemd.mount 0 2 overlay /etc overlay defaults,x-systemd.mount, x-systemd.after=opt.mount,lowerdir=/etc,upperdir=/opt/etc,workdir=/work/etc 0 2 overlay /lib/systemd/system overlay defaults,x-systemd.mount,x-systemd.after=opt.mount,lowerdir=/lib/systemd/system,upperdir=/opt/lib/systemd/system,workdir=/work/lib 0 2 |
这是在到达local-fs.target之前处理的。
结果
我可以成功启动应用程序,但可以使用systemctl start app.service手动启动。状态为" systemctl status app.service"的状态表示已启用。但是该应用程序不是在启动时启动的。 Systemd没有提供有关尝试启动该应用程序的消息。
问题
是否有一种方法可以调试此行为? systemd何时检查服务文件?有没有办法再次触发它?还有其他方法可以通过systemd处理此用例吗?
systemctl守护程序重新加载
我测试这不起作用。
以我的情况。我使用systemd-networked,并覆盖
systemd在启动时会检查一次单位文件,这是一个初始化脚本,该脚本在systemd启动之前可以处理此用例。
另一个想法(但未经测试)是:systemctl daemon-reload