![如何让启动服务等到远程驱动器可用?](https://linux22.com/image/1084487/%E5%A6%82%E4%BD%95%E8%AE%A9%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E7%AD%89%E5%88%B0%E8%BF%9C%E7%A8%8B%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%8F%AF%E7%94%A8%EF%BC%9F.png)
我有一个启动服务,它使用挂载在 nfs 共享上的数据。如果我同时启动 2 台机器,nfs 共享在服务启动时不可用,并且会变得混乱。我只想暂停 init.d 中的启动脚本,等待共享可用。有人这样做过吗?
答案1
好的,首先你需要在启动时禁用该脚本
sudo update-rc.d foobar remove
然后再次添加为
sudo update-rc.d foobar defaults 99
代替福巴与您的实际脚本。
将脚本设置为默认值 99 将使其成为最后一项操作,这样就应该给它足够的时间让共享变得可用。
答案2
我知道这有点旧了,但是因为我在寻找时发现了它,也许其他人也会发现。
如果您正在寻找 systemd 的解决方案,那么我按照以下方法让 dovecot 等待 nfs 挂载 /home 后再启动。
systemctl edit dovecot.service
[Unit]
RequiresMountsFor=/home
保存它,下次重新启动时就可以了。
您可以对任何服务/挂载点组合执行此操作。