为什么我们需要在不同的二进制文件中重新启动功能?
shutdown -r
和
reboot
还是它们在某些方面有所不同?
为什么我们需要在不同的二进制文件中重新启动功能?
shutdown -r
和
reboot
还是它们在某些方面有所不同?
Answers:
我们不一定都需要它们,但是由于Unix的历史以及版本的多样性,我们都需要它们。
从各自的手册页:
关闭功能更通用,功能更强大,而重新启动则更友好,更容易记住。
shutdown使您可以指定一个时间参数(例如,在5分钟内重新启动),并允许您除了重新启动之外还做很多事情,包括:
但是,如果您只想立即重新引导系统,则键入reboot比起来容易shutdown -r now。
shutdown现在默认使用某些版本。shutdown -h永远不要试图获取帮助以寻求帮助,尤其是不要在数据中心内的服务器上。
这两个命令的功能有所不同,但是它们最终可能会互相调用,这就是为什么它们似乎做同样的事情!
reboot将调用内核以实际触发硬件重启。但是,只有在系统准备关闭时才执行此操作-应该停止所有守护程序和用户进程,卸载文件系统等。因此,它将检查系统运行级别,如果它不是0或6,则它将实际调用shutdown给您的命令。
shutdown导致更改系统运行级别。运行级别更改(暂停为0或重新引导为6)在/etc/rc0.d或rc6.d中运行了许多脚本,这些脚本关闭了守护程序,卸载文件系统等。最后,这些脚本调用halt或reboot-这次系统处于正确的运行级别,它们指示内核重新引导(或停止)。
除了iconoclast编写的内容之外,这两个程序之间还有一个重要的区别:shutdown在中/sbin,而reboot在中/usr/bin。
你问为什么这很重要?我会告诉你。
/usr在系统启动足够远以至于系统无法正常工作之前,下面的内容是不需要的。那些传统上从未安装在单独的文件系统顶级目录- ,,/bin 等-预计可在系统达到这一最低限度可使用状态。这种设计有多种含义。例如,如果或中存在替代项,则编写使用程序的SysV初始化脚本的“ stop”子句是一种不好的风格。/etc/sbin/usr/bin/bin/sbin
shutdown是关键实用程序,始终可用。reboot仅是一种便利工具。
reboot是在/sbinDebian中(带的SysVinit)和Ubuntu(与暴发户)。