我有一个依赖于已安装驱动器的 nginx。
我的 nginx.service 在服务单元中有一个带有 RequiresMountsFor 的条目,如下所示:
[Unit]
RequiresMountsFor=/media/bar
但看起来它仍在挂载点之前启动。
我的挂载命令如下所示,在 cron 作业 @reboot 上:
mount -o bg,nolock,noac,actimeo=0 192.168.1.5:/foo/bar /media/bar
我找不到哪里出了问题。以下是配置显示systemctl show nginx.service
...
Before=multi-user.target shutdown.target
After=foo-bar.mount sysinit.target network.target -.mount system.slice basic.target systemd-journald.socket
RequiresMountsFor=/media/bar
...
答案1
如果你需要在 cron 之后专门运行,你可以添加
Requires=cronie.service
在您的单元文件中,它将等待 crond 启动后再尝试 nginx 服务。
您可能还会幸运地将挂载移动到/etc/fstab
而不是作为 cron。systemd 会自动从那里选择挂载并创建适当的挂载文件。