Linux关机重启二三事

、、

1概述

故障是高可用组最常接触的场景,其中包含进程故障,网络故障、系统故障,硬件故障。掉电关机和重启作为其中最常见系统故障,具体的细节还是有些许差异的。本文将从操作系统与主板行为讲解三者之间的联系与区别。

2掉电

作为实际运维侧最常见的异常场景,掉电的流程相对不那么复杂。当主板检测到AC(电源失联时会触发ACPI的掉电事件此时主板会通知CPU将当前的计算尽可能完成,如果在一个时间窗口内无法完成的则直接抛弃,并CPU状态为S5按照存储速度由快到慢的顺序(CPU——内存——硬盘但实际上基本上会直接切掉前两个的电,因为很少有任务能够在这个窗口期内完成切断电源

接着主板进入G3状态:即主板仅通过板载电池供电,该电池仅用作保证响应开关机按钮事件、记录时钟信息(这个时钟就是时间,操作系统的时间也是通过这个读的)等操作。待下次启动时,根据BIOS存储的信息,决定进行“完整检查”或者“快速检查”,通常对于家用机而言,大部分执行的是快速检查但对于服务器而言,进行的一般都是完整检查因此对于服务器而言之所以掉电后启动速度极慢,实际上是因为掉电后执行了一遍完整自检根据个人经验,一次完整自检可能需要耗时10分钟以上

这里比较特殊的尽管是按照这个顺序去切断电源,硬盘很可能因为存电不足而无法正常断电,对于相对古老的机械硬盘而言最大的灾难莫过于写入时突然断电导致磁头没有及时归位,这会导致下次启动时磁头不能检查自己是否处在正常状态而磁盘造成不可逆的损伤。尽管当前现在的机械磁盘也做了短时存电的操作,但这个功能尽量不要用,尤其是对数据要求比较高的场景下。

3关机

关机的种类有很多,可以根据不同的形式进行划分。

3.1保存进程关机

保存进程关机是我们日常生活中最常用的一种关机手段,执行该关机时系统会当前正在执行的进程通知系统即将关闭,当除了系统进程以外其他所有进程都完成了各自任务,系统会逐步结束自身进程,并向主板通知

该类关机执行通常是通过操作系统界面的关机按钮提供相关功能,对于Linux而言其可以shutdown命令或者init 0简单对应。

​​​​​​​3.2保存系统关机

不保存进程关机通常是当系统大部分进程挂起无法正常执行保存进程关机的操作时才使用的一种关机手段该关机相比起不保存进程关机,除了不通知执行的进程以外,其他的区别不大。系统在执行该关机时,会直接结束其他进程,然后逐步结束自身进程,并主板通知。

该类关机执行通常没有对应的图形界面接口,对于Linux而言其可以与halt命令简单对应。

​​​​​​​3.3关机

关机通常是当系统进程挂起整个系统卡死无响应无法正常执行保存系统状态关机的操作时才使用的一种关机手段该关机相比保存系统关机更加的粗暴在执行该关机时,会直接通知主板掉电,不保留任何操作系统或者用户进程相关的内容。

该类关机执行通常没有对应的图形界面接口一般的长按关机键会触发该类关机对于Linux而言其可以与poweroff命令简单对应。

​​​​​​​3.4关机之后

对于以上三类关机,主板收到通知后此时会进入G2状态:即主板此时由AC供电,但不再拉起操作系统状态。需要说明的:硬关机的表现是最接近G3关机从操作系统层面而言表现是一致的,都是系统进程被强制终结两者由于唤醒时BIOS的状态不同,因此不排除在这个过程中出现掉电导致的硬件损坏,因此两者的实际表现可能仍有不同之处(尤其是硬盘)

4重启

重启是我们常用的一种操作,其具体的行为取决于相关的关机实现,但重启与关机最大的不同在于,重启不会通知主板关闭,主板仍旧会通过引导拉起操作系统

通常重启应用于不需要重新初始化硬件场景下(比如部分硬件固件无法加载等,因为关机后再开机会重新初始化并加载相关的固件,但重启不会重新初始化设备)。对于大多数带有图形界面的操作系统,其图形界面下的重启一般是保留进程重启对于Linux的reboot命令一般是保留系统重启。

5.题外话

实际上,对于当前的Linux,其shutdown、halt、poweroff、reboot命令已经合并成一个工具包了,内部执行时逻辑也有了杂糅。因此实际真正执行时,可能并不会按照文中的预期去严格区分,如果测试时需要测试硬关机可以考虑在poweroff的前提下加上参数-f。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法1--两束求和

题目描述 解题思路 先说一种很容易想到的暴力解法 暴力解法的思路很简单,就是遍历数组,对于每一个元素,都去遍历数组中剩下的元素,判断是否有两个元素的和等于目标值,如果有,就返回这两个元素的下标。 c…

在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和腾讯翻译插件让英文网页显示中文翻译

在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和腾讯翻译插件让英文网页显示中文翻译 应用——系统工具——终端 suozhangfedora:~$ rpm -aq | grep firefox firefox-131.0.2-1.fc41.x86_64 firefox-langpacks-131.0.2-1.fc41.x86_64 fedora41系统自身安装有f…

android 接入google 登录

在 Android 应用中接入 Google 登录功能,可让用户使用他们的 Google 账号快速登录应用。以下是详细的接入步骤和示例代码: 步骤 1:创建 Google API 项目 访问 Google API 控制台,并使用你的 Google 账号登录。点击 “选择项目”,然后点击 “新建项目”,按照提示填写项目…

Redis缓存与数据库 数据一致性保障

为什么要保证数据一致性 只要使用redis做缓存,就必然存在缓存和DB数据一致性问题。若数据不一致,则业务应用从缓存读取的数据就不是最新数据,可能导致严重错误。比如将商品的库存缓存在Redis,若库存数量不对,则下单时…

19.哈希表的实现

1.哈希的概念 哈希(hash)⼜称散列,是⼀种组织数据的⽅式。从译名来看,有散乱排列的意思。本质就是通过哈希函数把关键字Key跟存储位置建⽴⼀个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进⾏快速查找。 1.2.直接定址法…

IoTDB TTL不生效

问题 时序数据库 IoTDB 1.3.0 版本数据库的 TTL 设置为两天,show databases details 看到设置也是正确的,怎么还是可以查到好几天前的数据?因为有很多不活跃的测点,所以专门设置了两天过期,有什么办法可以自动清理呢&…

【C++基础】Lambda 函数 基础知识讲解学习及难点解析

一、引入 在 C 中,我们通常使用函数来完成特定的功能。但有时候,我们需要在一个函数内部定义一个小型的功能块,这时如果单独写一个函数会显得繁琐。C11 引入了 Lambda 函数,它是一种匿名函数,可以在需要的地方直接定义…

OpenCV 基础模块 Python 版

OpenCV 基础模块权威指南(Python 版) 一、模块全景图 plaintext OpenCV 架构 (v4.x) ├─ 核心层 │ ├─ core:基础数据结构与操作(Mat/Scalar/Point) │ └─ imgproc:图像处理流水线(滤…

iStoreOS软路由对硬盘格式化分区(转化ext4)

一、为什么要格式化分区? 格式化硬盘分区是软路由安装或配置过程中的重要步骤,主要用于清除旧数据、优化文件系统、确保系统稳定性和兼容性。 二、通过iStoreOS硬盘格式化步骤 使用场景:Docker迁移到外置移动硬盘为例,考虑兼容现…

打造用户认证系统,构筑信息安全防线

在当今的数字化时代,信息安全和用户隐私保护变得越来越重要。用户身份认证是确保信息安全的第一道防线。通过验证用户身份,可以防止未经授权的访问和数据泄露。它有助于保护用户的个人信息、账户资金和其他敏感数据。此外,用户身份认证还可以…

北京南文观点:品牌如何抢占AI 认知的 “黄金节点“

在算法主导的信息洪流中,品牌正在经历一场隐蔽的认知权争夺战,当用户向ChatGPT咨询"哪家新能源车企技术最可靠"时,AI调取的知识图谱数据源将直接决定品牌认知排序。南文乐园科技文化(北京)有限公司&#xff…

音视频系列——Websockets接口封装为Http接口

模型服务示例:实时语音转文本服务 本示例展示一个支持双协议(WebSocket流式接口HTTP同步接口)的语音转文本模型服务,并提供将WebSocket接口封装为HTTP接口的代码实现。 一、服务架构设计 #mermaid-svg-nw0dMZ4uKfS4vGZR {font-fa…

Axure项目实战:智慧城市APP(一)(动态面板、拖动效果)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:智慧城市APP便民服务平台 主要内容:完整智慧APP原型设计 应用场景:各类政务型、B端APP均可参考 案例展示:&…

MySQL 入门大全:数据类型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

Java 记忆链表,LinkedList 的升级版

文章目录 记忆链表 MemoryLinkedList实战源代码 众所周知,ArrayList 和 LinkedList 是 Java 集合中两个基本的数据结构,对应数据结构理论中的数组和链表。但在这两个数据结构,开发者们通常使用 ArrayList,而不使用 LinkedList。JD…

《白帽子讲 Web 安全》之开发语言安全深度解读

目录 引言 1.PHP 安全 1.1变量覆盖 1.2空字节问题 1.3弱类型 1.4反序列化 1.5安全配置 2Java 安全 2.1Security Manager 2.2反射 2.3反序列化 3Python 安全 3.1反序列化 3.2代码保护 4.JavaScript 安全 4.1第三方 JavaScript 资源 4.2JavaScript 框架 5.Node.…

鸿蒙HarmonyOS NEXT应用崩溃分析及修复

鸿蒙HarmonyOS NEXT应用崩溃分析及修复 如何保证应用的健壮性,其中一个指标就是看崩溃率,如何降低崩溃率,就需要知道存在哪些崩溃,然后对症下药,解决崩溃。那么鸿蒙应用中存在哪些崩溃类型呢?又改如何解决…

分析K8S中Node状态为`NotReady`问题

在Kubernetes(k8s)集群中,Node状态为NotReady通常意味着节点上存在某些问题,下面为你分析正常情况下节点应运行的容器以及解决NotReady状态的方法。 正常情况下Node节点应运行的容器 1. kubelet kubelet是节点上的核心组件&…

第六届机电一体化技术与智能制造国际学术会议(ICMTIM 2025)

重要信息 4月11-13日 南京江北新区工业大学亚朵酒店 www.icmtim.org(点击了解参会投稿等) 简介 由南京工业大学主办,南京工业大学电气工程与控制科学学院、中国矿业大学、黑龙江大学、江苏省自动化学会承办的第六届机电一体化技术…

INT202 Complexity of Algroithms 算法的复杂度 Pt.2 Search Algorithm 搜索算法

文章目录 1.树的数据结构1.1 有序数据(Ordered Data)1.1.1 有序字典(Ordered Dictonary)1.1.1.1 排序表(Sorted Tables) 1.2 二分查找(Binary Search)1.2.1 二分查找的时间复杂度 1.3 二叉搜索树&#xff0…