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

文档序号:14529190阅读:835来源:国知局
提高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文件系统的健壮性和可维护管理能力。

本发明不局限于上述最佳实施方式,任何人在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1