CN105760276B - 提高reboot命令重启可靠性并增加复位日志的方法 - Google Patents
提高reboot命令重启可靠性并增加复位日志的方法 Download PDFInfo
- Publication number
- CN105760276B CN105760276B CN201610097426.2A CN201610097426A CN105760276B CN 105760276 B CN105760276 B CN 105760276B CN 201610097426 A CN201610097426 A CN 201610097426A CN 105760276 B CN105760276 B CN 105760276B
- Authority
- CN
- China
- Prior art keywords
- reset
- file system
- kernel
- linux file
- linux
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种提高reboot命令重启可靠性并增加复位日志的方法,包括:增加并加载内核监控模块,初始化内核定时器并配置复位监控超时时间;接到reboot命令后,复位脚本开始执行;超时时间内,在复位脚本执行的最后,通过用户态复位系统,并记录复位原因日志,若复位失败,则执行reboot命令复位系统,记录复位原因日志;超时后,若系统复位失败,则内核态复位系统,记录复位原因日志。本发明通过增加用户态应用程序和内核态复位控制保护,启动定时器监控复位,并增加复位原因日志供查询,在系统异常导致reboot命令无法复位系统时,控制内核监控模块复位系统,增加了系统复位手段,提高了系统健壮性和可维护管理能力。
Description
技术领域
本发明涉及Linux系统管理和故障诊断,具体涉及提高reboot命令重启可靠性并增加复位日志的方法。
背景技术
通信系统稳定性要求高,在系统升级、设备工程开通或故障排查的时候,经常需要用到reboot命令来重启系统,Linux的reboot命令是通过api调用sys_reboot,最终调用CPU平台相关的函数machine_restart,完成重启。
在重启之前,Linux文件系统会执行脚本/etc/rc6.d/S01reboot来完成文件系统的安全卸载、应用进程的退出以及服务的安全停止等,以最大限度的保护Linux文件系统不受破坏,但是如果某个操作挂死或异常的时候,reboot命令就会一直挂死,对用户而言,就是Linux的reboot命令导致系统死掉,没有任何打印和日志,控制台没有反应,除非通过人为掉电或按键复位才能恢复,对于通信设备等无人值守的系统来说,带来了极大的不便,同时会造成业务的中断和宕机,影响极其严重。在异常情况下,如果文件系统破坏或异常,用户将无法通过reboot命令来重启系统,系统将处于无法重启的状态。
有鉴于此,急需提供一种能够解决Linux文件系统无法复位重启和没有重启失败日志的方法。
发明内容
本发明所要解决的技术问题是解决Linux文件系统无法复位重启和没有重启失败日志的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种提高reboot命令重启可靠性并增加复位日志的方法,包括以下步骤:
S1:进入Linux文件系统后,增加并加载内核监控模块,初始化内核高精度定时器,并配置内核高精度定时器的复位监控超时时间;
S2:Linux文件系统接收到reboot命令后,Linux文件系统的复位脚本开始执行;
S3:复位监控超时时间内,在Linux文件系统的复位脚本执行的最后,调用用户态应用程序写CPU寄存器复位Linux文件系统,并记录复位原因日志,如果复位成功,则Linux文件系统正常复位,如果复位失败,则执行reboot命令完成Linux文件系统的复位,并记录复位原因日志;超出复位监控超时时间时,如果Linux文件系统复位失败,则在内核态写CPU寄存器复位Linux文件系统,并记录复位原因日志。
在上述技术方案中,若所述Linux文件系统在运行过程中出现破坏或异常,导致无法执行所述reboot命令,则通过控制所述内核监控模块在内核态写CPU寄存器完成所述Linux文件系统的复位,并记录所述Linux文件系统的reboot命令异常日志和复位原因日志。
在上述技术方案中,所述内核高精度定时器的复位监控超时时间默认配置为一分钟。
在上述技术方案中,所述Linux文件系统的复位脚本为/etc/rc6.d/S01reboot
在上述技术方案中,创建所述Linux文件系统的交互接口文件/sys/devices/platform/watchdog.0/fh_dog,作为所述用户态和所述内核态的交互开关。
在上述技术方案中,所述内核监控模块为watchdog.ko。
本发明通过增加并加载内核监控模块,定义一个内核高精度定时器,修改复位脚本,增加用户态应用程序复位控制保护,启动内核高精度定时器来监控复位过程,增加内核态直接复位Linux文件系统控制,增加内核态复位控制保护,同时增加每个复位原因到内存日志文件供查询。在Linux文件系统异常导致reboot命令无法执行复位Linux文件系统的情况下,支持直接控制内核监控模块来复位Linux文件系统,增加了Linux文件系统复位手段,提高了Linux文件系统的健壮性和可维护管理能力。本发明具有以下有益效果:
(1)内核高精度定时器调度开销小,执行可靠;(2)内核高精度定时器复位监控超时时间可以通过软件参数控制,灵活方便且通用性强;(3)内核态任务不会被用户空间reboot命令触发的kill命令杀掉,安全可靠;(4)用户态和内核态的双重保护,确保Linux文件系统的可靠复位;(5)监控开关可以通过简单的接口文件开关控制,默认处于待机状态,内核高精度定时器不工作,不占用CPU时间,软件健壮性好;(6)可以记录不同的Linux文件系统复位原因到日志文件,方便定位Linux文件系统复位原因;(7)可以满足Linux文件系统异常情况下的Linux文件系统复位需求,提高了Linux文件系统的可维护性。
附图说明
图1为本发明实施例提供的一种提高reboot命令重启可靠性并增加复位日志的方法流程图;
图2为本发明实施例的具体实施流程图。
具体实施方式
本发明,基于内核高精度定时器、reboot命令和内核监控模块,首先在执行reboot命令(重启命令)的入口,启动一个内核高精度定时器,在正常复位流程最后,通过用户态应用程序控制CPU寄存器来复位Linux文件系统,并记录复位原因日志,如果不成功则调用reboot命令的默认代码执行Linux文件系统复位,并记录复位原因日志,当内核高精度定时器超时,Linux文件系统没有复位成功,则在内核态通过直接控制CPU寄存器完成Linux文件系统的复位,并且记录各种复位原因到系统日志文件,用户空间和内核空间的双重保护可以最大限度提高reboot命令完成重启的可靠性。在Linux文件系统破坏,导致reboot命令无法执行的情况下,可以直接控制内核监控模块实现Linux文件系统的复位重启,增强了Linux文件系统复位手段。同时,由于增加了复位原因日志,可以帮助分析Linux文件系统重启的原因及查询Linux文件系统是否出现过异常。
下面结合说明书附图和具体实施方式对本发明做出详细的说明。
本发明实施例提供了一种提高reboot命令重启可靠性并增加复位日志的方法,如图1所示,包括以下步骤:
S1:进入Linux文件系统后,增加并加载内核监控模块watchdog.ko,初始化内核高精度定时器,并配置内核高精度定时器的复位监控超时时间;
S2:Linux文件系统接收到reboot命令后,Linux文件系统的复位脚本/etc/rc6.d/S01reboot开始执行;
S3:复位监控超时时间内,在Linux文件系统的复位脚本执行的最后,调用用户态应用程序写CPU寄存器复位Linux文件系统,并记录复位原因日志,如果复位成功,则Linux文件系统正常复位,如果复位失败,则执行reboot命令完成Linux文件系统的复位,并记录复位原因日志;超出复位监控超时时间时,如果Linux文件系统复位失败,则在内核态写CPU寄存器复位Linux文件系统,并记录复位原因日志。
在上述方法中,若Linux文件系统在运行过程中出现破坏或异常,导致无法执行reboot命令,则通过控制内核监控模块在内核态写CPU寄存器完成Linux文件系统的复位,并记录Linux文件系统的reboot命令异常日志和复位原因日志。
其中,内核高精度定时器的复位监控超时时间默认配置为1分钟,同时创建Linux文件系统的交互接口文件/sys/devices/platform/watchdog.0/fh_dog,作为用户态和内核态的交互开关。
如图2所示,为本发明实施例的具体实施流程图,具体包括以下步骤:
S101、进入Linux文件系统后,加载内核监控模块驱动watchdog.ko,初始化内核高精度定时器,并配置内核高精度定时器的复位监控超时时间。
S102、判断Linux文件系统是否接收到reboot命令,如果是,转S103;否则,转S110。
S103、Linux文件系统的复位脚本/etc/rc6.d/S01reboot开始执行。
S104、在复位脚本的入口启动内核高精度定时器,内核高精度定时器开始计时。
S105、判断内核高精度定时器是否超时,如果是,转S106;否则,转S107。
S106、如果Linux文件系统复位失败,则在内核态写CPU寄存器完成Linux文件系统的复位,并记录复位原因日志,转S113。
S107、在Linux文件系统的复位脚本执行的最后,调用用户态应用程序写CPU寄存器复位Linux文件系统,并记录复位原因日志。
S108、判断复位是否成功,如果是,则直接转S113;否则,转S109。
S109、执行reboot命令完成Linux文件系统的复位,并记录复位原因日志,转S113。
S110、判断是否接收到内核监控模块的复位请求,如果是,转S111;否则,转S113。
S111、通过控制内核监控模块在内核态写CPU寄存器完成Linux文件系统的复位。
S112、记录Linux文件系统的reboot命令异常日志和复位原因日志,转S113。
S113、结束。
本发明通过增加并加载内核监控模块,定义一个内核高精度定时器,修改复位脚本,增加用户态应用程序复位控制保护,启动内核高精度定时器来监控复位过程,增加内核态直接复位Linux文件系统控制,增加内核态复位控制保护,同时增加每个复位原因到内存日志文件供查询。在Linux文件系统异常导致reboot命令无法执行复位Linux文件系统的情况下,支持直接控制内核监控模块来复位Linux文件系统,增加了Linux文件系统复位手段,提高了Linux文件系统的健壮性和可维护管理能力。
本发明不局限于上述最佳实施方式,任何人在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
Claims (6)
1.提高reboot命令重启可靠性并增加复位日志的方法,其特征在于,包括以下步骤:
S1:进入Linux文件系统后,增加并加载内核监控模块,初始化内核高精度定时器,并配置内核高精度定时器的复位监控超时时间;
S2:Linux文件系统接收到reboot命令后,Linux文件系统的复位脚本开始执行,并在复位脚本的入口启动内核高精度定时器,内核高精度定时器开始计时;
S3:复位监控超时时间内,在Linux文件系统的复位脚本执行的最后,调用用户态应用程序写CPU寄存器复位Linux文件系统,并记录复位原因日志,如果复位成功,则Linux文件系统正常复位,如果复位失败,则执行reboot命令完成Linux文件系统的复位,并记录复位原因日志;超出复位监控超时时间时,如果Linux文件系统复位失败,则在内核态写CPU寄存器复位Linux文件系统,并记录复位原因日志。
2.如权利要求1所述的方法,其特征在于,若所述Linux文件系统在运行过程中出现破坏或异常,导致无法执行所述reboot命令,则通过控制所述内核监控模块在内核态写CPU寄存器完成所述Linux文件系统的复位,并记录所述Linux文件系统的reboot命令异常日志和复位原因日志。
3.如权利要求1所述的方法,其特征在于,所述内核高精度定时器的复位监控超时时间默认配置为一分钟。
4.如权利要求1所述的方法,其特征在于,所述Linux文件系统的复位脚本为/etc/rc6.d/S01reboot。
5.如权利要求1所述的方法,其特征在于,创建所述Linux文件系统的交互接口文件/sys/devices/platform/watchdog.0/fh_dog,作为所述用户态和所述内核态的交互开关。
6.如权利要求1所述的方法,其特征在于,所述内核监控模块为watchdog.ko。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610097426.2A CN105760276B (zh) | 2016-02-19 | 2016-02-19 | 提高reboot命令重启可靠性并增加复位日志的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610097426.2A CN105760276B (zh) | 2016-02-19 | 2016-02-19 | 提高reboot命令重启可靠性并增加复位日志的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105760276A CN105760276A (zh) | 2016-07-13 |
CN105760276B true CN105760276B (zh) | 2018-05-29 |
Family
ID=56331096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610097426.2A Active CN105760276B (zh) | 2016-02-19 | 2016-02-19 | 提高reboot命令重启可靠性并增加复位日志的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760276B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762886B (zh) * | 2018-05-08 | 2020-12-01 | 烽火通信科技股份有限公司 | 虚拟机的故障检测恢复方法及系统 |
CN112698870A (zh) * | 2019-10-23 | 2021-04-23 | 杭州海康威视数字技术股份有限公司 | 开关机管理方法、计算设备及存储介质 |
CN114489817B (zh) * | 2021-12-28 | 2024-06-25 | 深圳市腾芯通智能科技有限公司 | 处理器启动方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247615A (zh) * | 2008-03-07 | 2008-08-20 | 上海华为技术有限公司 | 提高通信设备可靠性的方法及装置 |
CN101739305A (zh) * | 2010-02-09 | 2010-06-16 | 太仓市同维电子有限公司 | 操作系统内核级实时看门狗监控装置及其监控方法 |
CN102483713A (zh) * | 2009-08-04 | 2012-05-30 | 富士通株式会社 | 复位方法以及监视装置 |
CN103514057A (zh) * | 2012-06-26 | 2014-01-15 | 京信通信技术(广州)有限公司 | 一种linux系统自愈方法、装置及自愈系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984266B2 (en) * | 2010-12-29 | 2015-03-17 | Brocade Communications Systems, Inc. | Techniques for stopping rolling reboots |
-
2016
- 2016-02-19 CN CN201610097426.2A patent/CN105760276B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247615A (zh) * | 2008-03-07 | 2008-08-20 | 上海华为技术有限公司 | 提高通信设备可靠性的方法及装置 |
CN102483713A (zh) * | 2009-08-04 | 2012-05-30 | 富士通株式会社 | 复位方法以及监视装置 |
CN101739305A (zh) * | 2010-02-09 | 2010-06-16 | 太仓市同维电子有限公司 | 操作系统内核级实时看门狗监控装置及其监控方法 |
CN103514057A (zh) * | 2012-06-26 | 2014-01-15 | 京信通信技术(广州)有限公司 | 一种linux系统自愈方法、装置及自愈系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105760276A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8468389B2 (en) | Firmware recovery system and method of baseboard management controller of computing device | |
CN101354677B (zh) | 一种应用程序运行状态的检测方法及装置 | |
CN109032822B (zh) | 一种死机信息的保存方法和装置 | |
CN105760276B (zh) | 提高reboot命令重启可靠性并增加复位日志的方法 | |
JP5183542B2 (ja) | 計算機システム及び設定管理方法 | |
CN105389525B (zh) | 刀片服务器的管理方法和系统 | |
CN107315656A (zh) | 多内核的嵌入式plc软件恢复方法和plc | |
US20130117518A1 (en) | System controller, information processing system and method of saving and restoring data in the information processing system | |
CN109614130A (zh) | 一种带有试运行、自检查的云广播升级方法及系统 | |
CN101145983B (zh) | 一种网管系统的自诊断和自恢复子系统及方法 | |
KR100899582B1 (ko) | 정보 처리 장치, 그 제어 장치, 그 제어 방법 및 제어프로그램을 저장한 컴퓨터 판독 가능한 기록 매체 | |
JP6599725B2 (ja) | 情報処理装置およびログ管理方法、並びにコンピュータ・プログラム | |
CN108762886B (zh) | 虚拟机的故障检测恢复方法及系统 | |
JP6073710B2 (ja) | 情報処理装置、起動障害からの自動復旧方法、及び起動障害からの自動復旧プログラム | |
US7506198B2 (en) | Protection and recovery system and automatic hard disk drive (HDD) instant recovery | |
JP3551079B2 (ja) | 修正ロードモジュール置換後の復旧方法ならびに装置 | |
KR20130075807A (ko) | 백업 하드디스크 드라이브가 구비된 금융자동화기기 및 금융자동화기기의 부팅 방법 | |
JP5994246B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR101300806B1 (ko) | 다중 프로세스 시스템에서 오동작 처리 장치 및 방법 | |
CN115604315A (zh) | 服务器的远程处理装置及方法、电子设备 | |
TWI461905B (zh) | 可遠端當機復原的運算裝置、用於運算裝置之遠端當機復原之方法及電腦可讀取媒體 | |
CN114217905A (zh) | 虚拟机高可用恢复处理方法及系统 | |
CN105391575A (zh) | 一种金库控制方法及系统 | |
CN104978208A (zh) | 一种热重启方法及其装置 | |
JP2785992B2 (ja) | サーバプログラムの管理処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190620 Address after: 430000 Guanghuo Road Optical Communication Industry Building, Guandong Industrial Park, Donghu Development Zone, Wuhan City, Hubei Province, 1st Floor Patentee after: Beacon Fire Ultra-micro Information Technology Co., Ltd. Address before: 430074 Optics Valley development street, East Lake Development Zone, Wuhan, Hubei 67 Patentee before: Fenghuo Communication Science &. Technology Co., Ltd. |
|
TR01 | Transfer of patent right |