Linux【9】-进程管理8-3--关机重启(reboot和shutdown、sync、poweroff、halt)

工作环境下的Linux主机尤其是提供敏感或者要害服务的主机来说,关机是系统管理员要给予充分重视的一件大事:不恰当或者不正确的关机和重启,轻则可能造成服务中断;重则文件系统损毁、数据丢失或者出错,导致不可挽回的后果。

当然, 我们面对问题还是简单的,因为主机并没有在线提供服务,所以除了我们自己外,没有其他在线用户了,所以即使直接将电插头拔掉关机也多半不会造成什么后果。但是,在任何情况下,我们都极其强烈地建议不要使用这种做法以及其他各种不正确的方法关机和重启。我们应该通过正确的命令来进行关机和重启。

centos中有三个跟关机相关的指令:

  1. 将数据同步写入硬盘中的指令: sync
  2. 惯用的关机指令: shutdown
  3. 重新启动,关机: reboot, halt, poweroff

一、sync

为了加快对磁盘上文件的读写速度,位于内存中的文件数据不会立即同步到磁盘上,因此关机之前需要先进行 sync 同步操作。

  • 事实上 sync 也可以被一般账号使用喔!只不过一般账号用户所更新的硬盘数据就仅有自己的数据,不像 root 可以更新整个系统中的数据了。
  • 而关机就只有 root 才有权限。

二、shutdown

普通用户没有权限使用shutdown命令,只有root用户才有权限。

[root@study ~]# /sbin/shutdown [-krhc] [时间] [警告讯息]

选项与参数:

-k : 不要真的关机,只是发送警告讯息出去!
-r : 在将系统的服务停掉之后就重新启动(常用)
-h : 将系统的服务停掉后,立即关机。 (常用)
-c : 取消前一个shutdown命令。值得注意的是,当执行一个如“shutdown  -h 11:10”的命令时,只要按“Ctrl+C”键就可以中断关机的命令。
-f <秒数> 送出警告信息和关机信号之间要延迟多少秒。警告信息将提醒用户保存当前进行的工作。
-n 不调用init程序关机,而是由shutdown自己进行(一般关机程序是由shutdown调用init来实现关机动作),使用此参数将加快关机速度,但是不建议用户使用此种关机方式。
-r重新启动系统。

时间 : 指定系统关机的时间!时间的范例底下会说明。若没有这个项目,则默认 1 分钟后自动进行。

立即关机

shutdown now

现在重启计算机:

shutdown -r now 

[时间] 设置多久时间后执行shutdown命令。时间参数有hh:mm或+m两种模式。

  • hh:mm格式表示在几点几分执行shutdown命令。例如“shutdown 10:45”表示将在10:45执行shutdown.
  • +m表示m分钟后执行shutdown。比较特别的用法是以now表示立即执行shutdown. 值得注意的是这部分参数不能省略。

[警告信息] 要广播所有登入用户的信息,这些信息会显示在当前登入用户的终端中。

三、reboot/halt/poweroff

[root@study ~]# sync; sync; sync; reboot
[root@study ~]# halt # 系统停止~屏幕可能会保留系统已经停止的讯息!
[root@study ~]# poweroff # 系统关机,所以没有提供额外的电力,屏幕空白!

其他关机命令":

reboot = shutdown -r now
halt = shutdown  -h now
powerfoff =halt + 切断电源

不建议上面三个命令,强行关机,有可能丢掉文件。

四、systemctl传达关机指令

[root@study ~]# systemctl [指令]

  • halt 进入系统停止的模式,屏幕可能会保留一些讯息,这与你的电源管理模式有关
  • poweroff 进入系统关机模式,直接关机没有提供电力喔!
  • reboot 直接重新启动
  • suspend 进入休眠模式

例子:

[root@study ~]# systemctl reboot # 系统重新启动
[root@study ~]# systemctl poweroff # 系统关机

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn