Filesystems systemd忽略来自overlayFS的服务
我想在另一个分区上构建一个应用程序系统,一个应用程序文件系统。属于应用程序的所有二进制文件、配置文件和服务文件都应位于应用程序fs中 我正在使用以下版本:kernel4.9.x,systemdv234 应用程序分区安装在/opt,其中包括以下文件:Filesystems systemd忽略来自overlayFS的服务,filesystems,systemd,openembedded,overlays,Filesystems,Systemd,Openembedded,Overlays,我想在另一个分区上构建一个应用程序系统,一个应用程序文件系统。属于应用程序的所有二进制文件、配置文件和服务文件都应位于应用程序fs中 我正在使用以下版本:kernel4.9.x,systemdv234 应用程序分区安装在/opt,其中包括以下文件: /opt/usr/bin/app-binary /opt/etc/systemd/system/multiuser.target/link_2_app.service /opt/lib/systemd/system/app.service
/opt/usr/bin/app-binary
/opt/etc/systemd/system/multiuser.target/link_2_app.service
/opt/lib/systemd/system/app.service
以下是服务文件:
[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同步,我创建了两个覆盖,这可能是/etc/fstab条目(对不起,格式有一行不起作用):
这是在到达local-fs.target之前处理的
结果
我可以使用systemctl start app.service成功启动应用程序,但可以手动启动。“systemctl status app.service”的状态表示已启用。但该应用程序不是在启动时启动的。Systemd未给出有关尝试启动应用程序的消息
问题
有没有办法调试这种行为?systemd什么时候检查服务文件?有没有办法再次触发它?是否有其他方法可以使用systemd处理此用例?systemd在启动时检查单元文件一次,一个在systemd启动之前创建覆盖的初始化脚本可以处理此用例
另一个想法(但未经测试)是:systemctl守护程序重新加载 我测试这不起作用
在我的情况下。我使用systemd networkd,并覆盖发布你的
应用程序服务
文件。添加服务文件后,应用程序通过“systemctl start app.service”检查“systemctl is enabled app.service”和journalctl-x | grep你的应用程序名称
成功启动。对于网络单元,安装单元文件覆盖后,我必须执行“systemctl restart systemd networkd”,以加载新配置。
/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