CN105760276B - 提高reboot命令重启可靠性并增加复位日志的方法 - Google Patents

提高reboot命令重启可靠性并增加复位日志的方法 Download PDF

Info

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
Application number
CN201610097426.2A
Other languages
English (en)
Other versions
CN105760276A (zh
Inventor
邓艳山
陈俊强
尹淇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beacon Fire Ultra-micro Information Technology Co., Ltd.
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201610097426.2A priority Critical patent/CN105760276B/zh
Publication of CN105760276A publication Critical patent/CN105760276A/zh
Application granted granted Critical
Publication of CN105760276B publication Critical patent/CN105760276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring 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

提高reboot命令重启可靠性并增加复位日志的方法
技术领域
本发明涉及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。
CN201610097426.2A 2016-02-19 2016-02-19 提高reboot命令重启可靠性并增加复位日志的方法 Active CN105760276B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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