我正在尝试建立一个新服务(在Debian Jessie下),该服务需要设置一些用于存储网络配置的安装架,因此该服务必须在启动network.service之前完成。
我尝试了以下方法:
[Unit]
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
#Before=network-pre.target
Before=networking.service
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=networking.service
使用“ systemd-analyze plot
我”可以看到我的服务已启动,但networking.service
大约提前了3秒:
显然我的配置有误,但是我很难找到问题所在。任何帮助都将不胜感激。
更新资料
我目前通过更改服务配置local-fs.target
而不是之前开始解决了它networking.service
:
[Unit]
DefaultDependencies=no
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
Before=local-fs.target
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=local-fs.target
还是,我想了解为什么我的第一个配置无法按预期工作...?
由于systemd的工作方式,事物运行的字面时间顺序可能并不重要。建立网络时,是否成功按照该目录中的文件进行操作?
—
汤姆·亨特
我不确定我是否理解您的问题。无论如何,
—
Udo G 2015年
/etc/network/interfaces
都有对ip-up
驻留在另一个分区中的脚本的引用。该分区是由一个复杂的脚本安装/opt/intermodul-mounts/start.sh
的是必须被设置网络之前运行。当前,这些ip-up
脚本实际上无法启动,因为它们在启动时无法访问。service networking restart
随后运行,将正确调出所有接口。