对于shutdown和reboot命令的研究

FreeBSD系统重启命令应该是使用shutdown -r now还是应该使用reboot?这两条命令有什么区别?下面我们就对此做深入探讨和研究。

shutdown命令安全地将系统关机,在关机之前,系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结,即新的用户不能再 登录。直接关机或者延迟一定的时间才关机都是可能的,还可能重启。这是由所有进程〔process〕 都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档,而像处理邮件〔mail〕和新闻〔news〕的程 序则可以正常地离开等等。

shutdown执行它的工作是送信号〔signal〕给init程序,要求它改变runlevel。

shutdown的具体执行时间,执行用户以及理由会写入系统日志,未完成的磁盘写入缓存也会回写到磁盘,以避免数据丢失。

至于reboot,则是直接给所有进程发送TERM信号,同时把reboot行为写入系统日志。reboot命令也会把系统更改回写到磁盘,但是reboot命令不会给登录用户发送reboot通知,因此可能导致数据丢失。

总结:如果仅作为个人使用,reboot和shutdown区别不大。而如果是作为提供给多人登录的服务器,必须使用shutdown命令,而不应该直接使用reboot。

关机 shutdown -s -t 0
重启 shutdown -r -t 0