CN105760276A - 提高reboot命令重启可靠性并增加复位日志的方法 - Google Patents
提高reboot命令重启可靠性并增加复位日志的方法 Download PDFInfo
- Publication number
- CN105760276A CN105760276A CN201610097426.2A CN201610097426A CN105760276A CN 105760276 A CN105760276 A CN 105760276A CN 201610097426 A CN201610097426 A CN 201610097426A CN 105760276 A CN105760276 A CN 105760276A
- Authority
- CN
- China
- Prior art keywords
- reset
- file system
- linux file
- kernel
- 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.)
- Granted
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 true CN105760276A (zh) | 2016-07-13 |
CN105760276B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762886A (zh) * | 2018-05-08 | 2018-11-06 | 烽火通信科技股份有限公司 | 虚拟机的故障检测恢复方法及*** |
CN112698870A (zh) * | 2019-10-23 | 2021-04-23 | 杭州海康威视数字技术股份有限公司 | 开关机管理方法、计算设备及存储介质 |
CN114489817A (zh) * | 2021-12-28 | 2022-05-13 | 深圳市腾芯通智能科技有限公司 | 处理器启动方法、装置、设备及存储介质 |
Citations (5)
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 | 富士通株式会社 | 复位方法以及监视装置 |
US20120173859A1 (en) * | 2010-12-29 | 2012-07-05 | Brocade Communications Systems, Inc. | Techniques for stopping rolling reboots |
CN103514057A (zh) * | 2012-06-26 | 2014-01-15 | 京信通信技术(广州)有限公司 | 一种linux***自愈方法、装置及自愈*** |
-
2016
- 2016-02-19 CN CN201610097426.2A patent/CN105760276B/zh active Active
Patent Citations (5)
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 | 太仓市同维电子有限公司 | 操作***内核级实时看门狗监控装置及其监控方法 |
US20120173859A1 (en) * | 2010-12-29 | 2012-07-05 | Brocade Communications Systems, Inc. | Techniques for stopping rolling reboots |
CN103514057A (zh) * | 2012-06-26 | 2014-01-15 | 京信通信技术(广州)有限公司 | 一种linux***自愈方法、装置及自愈*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762886A (zh) * | 2018-05-08 | 2018-11-06 | 烽火通信科技股份有限公司 | 虚拟机的故障检测恢复方法及*** |
CN112698870A (zh) * | 2019-10-23 | 2021-04-23 | 杭州海康威视数字技术股份有限公司 | 开关机管理方法、计算设备及存储介质 |
CN114489817A (zh) * | 2021-12-28 | 2022-05-13 | 深圳市腾芯通智能科技有限公司 | 处理器启动方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105760276B (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6697962B1 (en) | Remote computer system monitoring and diagnostic board | |
CN101452420B (zh) | 一种嵌入式软件异常监控和处理装置及其方法 | |
US6425093B1 (en) | Methods and apparatuses for controlling the execution of software on a digital processing system | |
CN107315656A (zh) | 多内核的嵌入式plc软件恢复方法和plc | |
CN105760276A (zh) | 提高reboot命令重启可靠性并增加复位日志的方法 | |
CN101542444A (zh) | 互连中心架构中的安全性特征 | |
CN108845875B (zh) | 一种常驻进程保活***以及方法 | |
CN114116280B (zh) | 交互式bmc自恢复方法、***、终端及存储介质 | |
US20220055637A1 (en) | Electronic control unit and computer readable medium | |
CN109976886B (zh) | 内核远程切换方法及装置 | |
CN108762886B (zh) | 虚拟机的故障检测恢复方法及*** | |
CN101145983A (zh) | 一种网管***的自诊断和自恢复子***及方法 | |
CN107528705B (zh) | 故障处理方法及装置 | |
CN106406963B (zh) | 一种Linux***的初始化方法和装置 | |
CN115904793B (zh) | 一种基于多核异构***的内存转存方法、***及芯片 | |
CN102541585B (zh) | 一种远程升级方法及嵌入式*** | |
CN106528276A (zh) | 一种基于任务调度的故障处理方法 | |
JP2001101034A (ja) | 異種os間制御による障害復旧方法 | |
KR101300806B1 (ko) | 다중 프로세스 시스템에서 오동작 처리 장치 및 방법 | |
KR101548921B1 (ko) | 인터페이스제어장치 및 그 동작 방법 | |
CN116302851B (zh) | Fpga逻辑异常监测与恢复方法、装置、设备及介质 | |
US9329920B2 (en) | Supervisor system resuming control | |
CN102111427B (zh) | 一种设备管理会话的恢复方法及*** | |
CN105391575A (zh) | 一种金库控制方法及*** | |
CN105630621B (zh) | 看门狗喂狗方法 |
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 | ||
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. |