使用 Upstart 在关机/重启时卸载 NFS?

使用 Upstart 在关机/重启时卸载 NFS?

我想在关机/重启时卸载 NFS 驱动器。我用笔记本电脑连接到它,由于已知的错误,当 NFS 挂载时,系统关闭了 10 分钟,而不是 20 秒。我曾经在 MAverick 中使用 /etc/rc0.d 和 rc6.d 中的 K02umount 脚本卸载它,但升级后,它似乎不再起作用了。所以,我尝试编写一个 upstart 作业,它可以帮我完成这个任务,我试过了

#start on stopping network

start on net-device-down IFACE!=lo  
task
# I tried with start on runlevel [!2345], too
script
exec /home/deckoff/Desktop/umount
end script

umount 是

umount /media/MyBookLive

手动执行时可以正常工作 似乎这个我在关机或重启时执行。我想找到一种方法来找到事件,这个方法要足够早,这样脚本才能有足够的执行时间。我读到问题是因为卸载之前网络断了,所以卸载被超时终止。我寻找在网络断开之前也会发生的这种情况。手动断开连接实际上可以解决问题...

这个错误难道真的是造成我遇到麻烦的根本原因吗?

答案1

由于您需要与远程系统通信,因此如果在网络设备关闭时启动,实际上已经太晚了。

你提到的错误,https://launchpad.net/bugs/672177,我已修复,与 NFS 无关,并且绝对不是您的问题。

你提到一个“已知错误”,导致你的系统需要 10 分钟才能关闭,你指的是https://launchpad.net/bugs/211631

如果您可以创建和编辑 upstart 作业,那么您应该能够编辑 fstab。有一个特定的脚本在关机期间运行,只是为了在最佳时间卸载 NFS 文件系统。如果它需要 10 分钟,那就是一个相当大的问题,应该报告并升级为我们在 Ubuntu 中应该修复的错误。您可以指定“noauto”标志,它将不会在启动时安装,因此您仍然可以使用“mount”控制它,并且只在需要时安装它。

最后,您可能只想在 /etc/network/if-pre-down.d 中的脚本中执行卸载。我从未尝试过,但它至少会在网络接口取消配置之前运行,因此您有机会关闭连接并正确同步数据。阅读更多man 5 interfaces相关信息。

相关内容