引言

《Linux启动之旅》中,我们了解了Linux的启动过程,下面我们一同来学习Linux关机与重新引导流程。

不同于桌面系统,作为服务器,我们较少对Linux系统进行系统重启,但在以下情形出现时,我们会对机器进行重启:

  • 更换硬件
  • 更改系统配置
  • 系统僵死,需要重启恢复

关闭和重启系统方式

引导系统本质上只能用一种方法,与此不同的是,关闭或重新引导系统有多种方法:

  1. 关闭电源(下电)
  2. 使用shutdown命令
  3. 使用halt、poweroff或reboot命令
  4. 使用telinit改变init运行级别

关闭电源

基于以下两点原因,直接对机器下电,并不是一种好的习惯:

  1. 可能导致硬件损坏
  2. 部分数据可能仍在内存,未被写回磁盘,这时下电会丢失数据或造成文件系统损害;

因而尽量使用其他方式关闭或重新引导系统。

shutdown命令

使用shutdown可以挂起(halt)或重启(reboot)系统,使用-h选项指示挂起系统,起到与halt命令相同的作用;使用-r选项指示重启系统,起到与reboot命令相同的作用。

执行shutdown命令后,系统将向所有登陆用户发送挂起或重启消息。

执行shutdown –h now后发送挂起消息:

# shutdown -h now
Broadcast message  :: ):
The system is going down for system halt NOW!
INIT:
INIT: Sending processes the TERM signal

执行shutdown –r now后发送重启消息:

# shutdown -r now
Broadcast message  :: ):
The system is going down for system reboot NOW!
INIT:
INIT: Sending processes the TERM signal

执行shutdown后,其他用户不能再登入系统,另我们可以指定系统挂起或重启的时间以及说明,如下两例:

凌晨1::00停机维护:

shutdown –h : “going down  hour.”

指定相对关机时间15分钟后关机:

shutdown –h + “going down for emergency check.”

halt和reboot命令

halt记录关机情况,终止非必要进程,执行sync系统调用,等待文件系统写操作完成,然后停止内核,poweroff命令等价于halt。

从以上”shutdown –h”和”shutdown –r”执行输出可知,执行halt即进入运行级别0,执行reboot即进入运行级别6,日志文件/var/log/messages中会记录相应日志。

系统重启日志:

May   :: slot14 shutdown[]: shutting down for system reboot
May   :: slot14 init: Switching to runlevel:
May   :: slot14 user_cmd: -- :: shutdown -r now by root  :]

系统挂起日志:

May   :: slot14 shutdown[]: shutting down for system halt
May   :: slot14 init: Switching to runlevel:
May   :: slot14 user_cmd: -- :: shutdown -h now by root  :]

通过查看/var/log/messages日志记录,可判断机器是无端重启还是人为地重启。

telinit命令

执行telinit命令可以指引init进入指定的运行级别,如重启系统:

#telinit 

使用telinit时,不会得到像执行shutdown那样友好的警告信息,较少用作挂起和重启命令,不过进行/etc/inittab文件的修改测试,使用该命令比较方便。

小结

对于承载已上线业务的服务器,重启系统是比较大的动作。当操作系统相关故障发生时,我们应先考虑收集日志信息,必要时再进行系统重启。

Linux系统关机与重新引导流程简介的更多相关文章

  1. 【Android 系统开发】 Android 系统启动流程简介

    作者 : 万境绝尘 (octopus_truth@163.com) 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/3889548 ...

  2. Linux系统初始化过程及运行级别简介

    Linux开机过程: 1 开机自检(BIOS):初始化硬件,查找启动介质 2 MBR引导 3 GRUB引导菜单:GRUB程序安装在Bootloader 4 加载内核(kernel) 5 运行INIT进 ...

  3. linux系统关机与重新启动命令

    在linux下关机和重新启动系统有shutdown.halt.reboot.init,对于他们来说他们的内部工作过程是不同样的. 1.shutdown命令 使用它能够安全地关闭系统.然而在关闭系统时. ...

  4. Linux系统 关机/重启/用户切换/注销,用户管理(用户创建/修改,用户组增加/删除),Linux中 / 和 ~ 的区别

    1.关机/重启命令 shutdown命令 shutdown -h now :立即关机 shutdown -h 1 :1分钟后关机 shutdown -r now :立即重启 shutdown -r 1 ...

  5. 【Linux 运维】linux系统关机、重启、注销命令

    linux 关机.重启.注销命令: 关机命令: shutdown -h now 立刻关机(生产常用) shutdown -h  +1  一分钟后关机      (    shutdown -c 可以将 ...

  6. laravel项目使用appnode部署linux系统到阿里云服务器流程记录(待补充)

    使用 SSH 连接工具,如 PuTTY.XShell.SecureCRT 等,连接 Linux 服务器后(阿里云服务器命令行内直接输入appnode安装命令,版本:mysql选5.7.php选7.2) ...

  7. Linux—系统关机命令详解

    不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中.将数据由内存同步写入到硬盘中. [root@localhost ~]# sync 一.shutdown命令 # 立刻关 ...

  8. 装机预备技能,Linux系统简介,安装Linux系统,Linux基本操作-云计算学习(2)

    装机预备技能 问题 要求安装一台可用的KVM服务器: RHEL与CentOS系统有什么关联? Linux系统中第三块SCSI硬盘如何表示? 步骤 实现此案例需要按照如下步骤进行. 步骤一:RHEL系统 ...

  9. Linux系统运行级与启动机制剖析

    原文作者:技术成就梦想 原文链接:http://ixdba.blog.51cto.com/2895551/533740 一 系统运行级windows系统有安全运行模式和正常运行模式,这是两个不同的运行 ...

随机推荐

  1. 在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件

    DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...

  2. 未能加载文件或程序集“Seagull.BarTender.Print, Version=11.0.8.1, Culture=neutral, PublicKeyToken=109ff779a1b4cbc7

    这2天项目上需要使用BarTender打印软件,使用BarTender的库的时候时候发现一个特别的问题: 未能加载文件或程序集“Seagull.BarTender.Print, Version=11. ...

  3. 如何用ModelSim对Xilinx ISE产生的网表进行仿真

    图: 在对设计的芯片进行测试时,经常要用到FPGA,可是里面的仿真工具却不如Modelsim那么好用,且在规模比较大时,ISE在仿真时,软件经常会报告内存限制的问题,此时一般会切换到Modelsim软 ...

  4. 2050编程赛 冰水挑战 HDU 6495

    题目地址:https://vjudge.net/problem/HDU-6495 思路:我们需要维护的是挑战了n个之后剩余体力值,剩余体力值越大越好dp[N(i)][N(j)],第一个维度,记录当前是 ...

  5. java算法题每日一练01,java入门简单算法题小练

    1.给数组做反序 public class Ak01 { public static void main(String[] args) { int[] a = new int[]{22,48,41,2 ...

  6. How to Read a Paper丨如何阅读一篇论文

    这是我在看论文时无意刷到的博客推荐的一篇文章"How to Read a Paper",教你怎么样看论文.对于研究生来说,看论文基本是日常,一篇论文十多二十页,如何高效地读论文确实 ...

  7. /data/src/dragon/bidder_mod//src/proto_adapters/dragon_wax_adapter.h:11:对‘vtable for DragonWaxAdapter’未定义的引用

    dragon/bidder_mod/config中增加: $ngx_addon_dir/src/proto_adapters/dragon_wax_adapter.cc \

  8. vector是序列式容器而set是关联式容器。set包含0个或多个不重复不排序的元素。

    1.vector是序列式容器而set是关联式容器.set包含0个或多个不重复不排序的元素.也就是说set能够保证它里面所有的元素都是不重复的.另外对set容器进行插入时可以指定插入位置或者不指定插入位 ...

  9. 个人永久性免费-Excel催化剂功能第27波-Excel工作表设置快捷操作

    Excel催化剂在完善了数据分析场景的插件需求后,决定再补充一些日常绝大多数Excel用户同样可以使用到的小功能,欢迎小白入场,在不违背太多Excel最佳实践的前提下,Excel催化剂乐意为广大Exc ...

  10. [leetcode] 21. Merge Two Sorted Lists (Easy)

    合并链表 Runtime: 4 ms, faster than 100.00% of C++ online submissions for Merge Two Sorted Lists. class ...