我最近不得不处理一个讨厌的、间歇性的 NFS 客户端/服务器挂载点问题。当客户端出现问题时,我无法卸载,以及其他一些奇怪的行为。迄今为止,我唯一的直接解决方案是重新启动客户端盒。
但shutdown -r now根本不起作用。我已经发现reboot -f,它确实重新启动了系统。为什么?我已经阅读了手册页,但似乎没有什么能回答我的问题。
shutdown -r now行为不同于reboot -f?(我正在继续解决 NFS 问题,但这不是我的问题。)
Cak*_*mox 20
从关机手册页:
一旦 TIME 结束,shutdown 就会向 init(8) 守护进程发送一个请求,让系统进入适当的运行级别。
init在系统更改运行级别时启动和停止作业。由于重启进入运行级别 6 时,系统运行 /etc/rc6.d 中的所有脚本。由于您的系统没有响应shutdown,很可能/etc/rc6.d(可能是K05nfs-common因为您的 NFS 问题)中的脚本被卡住,不允许关闭序列完成。事实上,当更改为运行级别 6 时,init 运行的最后一件事是reboot -d -f -i.
reboot -f 跳过所有脚本并直接重新启动系统。
Der*_*rfK 12
shutdown指示init开始关闭程序,其中包括让登录用户知道系统正在关闭、正常终止所有进程、卸载和同步驱动器等。你在这里被挂断了,因为等待 IO 的进程往往很难被杀死,而且你卡住的 NFS 挂载无法卸载。
reboot -f,另一方面,立即重新启动服务器而不执行任何操作。(reboot是程序init调用关闭服务器。如果没有-f标志,它将检查是否init认为当前正在重新启动,如果没有,它将调用shutdown以启动该进程)。