CN107153453A - 一种Linux***复位处理方法及装置 - Google Patents

一种Linux***复位处理方法及装置 Download PDF

Info

Publication number
CN107153453A
CN107153453A CN201610123998.3A CN201610123998A CN107153453A CN 107153453 A CN107153453 A CN 107153453A CN 201610123998 A CN201610123998 A CN 201610123998A CN 107153453 A CN107153453 A CN 107153453A
Authority
CN
China
Prior art keywords
reset
information
kernel
reserved memory
repositioning
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.)
Withdrawn
Application number
CN201610123998.3A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201610123998.3A priority Critical patent/CN107153453A/zh
Priority to PCT/CN2017/073826 priority patent/WO2017148271A1/zh
Publication of CN107153453A publication Critical patent/CN107153453A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明提供了一种Linux***复位处理方法及装置,该方法包括:监测Linux***的复位场景;当监测到Linux***启动复位流程时,获取复位操作的复位信息,将复位信息缓存在预设的保留内存中,其中复位信息包括复位操作的场景信息、发起者信息以及当前***的状态信息;保留内存为***内存中的内存空间;当监测到Linux***执行复位操作时,启动预设内核,在所启动的预设内核中,将复位信息存储在硬盘中。本发明解决了在Linux***进行***复位时,复位信息难以收集,给故障定位带来困扰的问题。

Description

一种Linux***复位处理方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种Linux***复位处理方法及装置。
背景技术
Linux***在运行的过程中经常会发生复位,复位场景通常包括:***调用引起的复位、键盘操作引起的复位(键盘组合键)、电源按键引起的复位以及内核错误引起的复位等。
对于***调用引起的复位,通常只有部分命令行程序(关机程序shutdown、重启程序reboot、停止程序halt等)在调用***调用之前会记录复位信息到相应的日志文件中(比如wtmp文件)中,而如果直接调用***调用,则没有记录;然而,wtmp文件中记录的复位信息较少,无法追溯进程调用信息,无法找到复位操作的最原始的发起者。
对于内核错误引起的复位,现有技术通常通过kdump服务把当前的内存镜像存储到vmcore文件中,可以通过crash等工具来解析vmcore文件,进而获得相应的复位信息;然而kdump等工具会保存当前***的整个内存镜像,占用存储空间大、耗费时间长。
而对于键盘操作引起的复位和电源按键引起的复位,现有技术难以收集相应的复位信息。
因此,在Linux***进行***复位时,复位信息难以收集,给故障定位带来困扰。
发明内容
本发明提供了一种Linux***复位处理方法及装置,其目的是为了解决在Linux***进行***复位时,复位信息难以收集,给故障定位带来困扰的问题。
为了达到上述目的,本发明的实施例提供了一种Linux***复位处理方法,该方法包括:
监测Linux***的复位场景;
当监测到Linux***启动复位流程时,获取复位操作的复位信息,将复位信息缓存在预设的保留内存中,其中复位信息包括复位操作的场景信息、发起者信息以及当前***的状态信息;保留内存为***内存中的内存空间;
当监测到Linux***执行复位操作时,启动预设内核,在所启动的预设内核中,将复位信息存储在硬盘中。
优选地,获取复位操作的复位信息的步骤,包括:
识别复位操作的场景信息;其中,复位操作的场景信息包括:***调用引起的复位、电源键引起的复位以及键盘组合键引起的复位中的一种;
获取复位操作的发起者信息以及当前***的状态信息,发起者信息至少包括:发起者的当前进程的进程标识符、与进程标识符对应的内核启动的第一个用户级INIT进程、所属终端、所属用户、启动时间以及执行的命令;当前***的状态信息至少包括:***执行复位操作前的中央处理器CPU状态、内存状态、输入/输出I/O状态。
优选地,识别复位操作的场景信息的步骤包括:
当在***内核调用的处理流程中检测到用户态程序调用重新启动***REBOOT命令时,确定复位操作的场景信息为***调用引起的复位;
当检测到高级配置和电源管理接口ACPI向***上报***复位对应的电源键事件时,确定复位操作的场景信息为电源键引起的复位;
当在键盘处理函数中检测到与***复位对应的键盘处理函数时,确定复位操作的场景信息为键盘组合键引起的复位。
优选地,获取复位操作的发起者信息的步骤,包括:
获取发起者的当前进程的进程标识符、所属终端、所属用户、启动时间以及执行的命令;
根据当前进程的进程标识符与进程标识符对应的INIT进程,获取父进程的进程标识符,所述父进程为发起者的当前进程与INIT进程之间的进程。
优选地,获取复位操作的复位信息的步骤之后,方法还包括:
根据复位信息判断复位操作的场景信息是否为内核错误引起的***复位;
当判断结果为是时,标记复位操作为内核错误;
其中,当监测到Linux***执行复位操作时,启动预设内核的步骤之后,
在预设内核中,将复位操作以及标记信息对应存储在硬盘中并执行复位操作。
优选地,当监测到Linux***启动复位流程时的步骤之前,方法还包括:
建立保留内存,并配置保留内存的容量以及起始地址并记录。
优选地,将复位信息缓存在预设的保留内存中的步骤,包括:
根据保留内存的容量以及起始地址查找保留内存,将复位信息缓存在保留内存中。
优选地,当监测到Linux***执行复位操作时的步骤之前,方法还包括:
建立预设内核,配置预设内核的容量以及起始地址并生成镜像文件,将镜像文件存储在硬盘中。
为了实现上述目的,本发明的实施例还提供了一种Linux***复位处理装置,包括:
检测模块,用于监测Linux***的复位场景;
获取模块,用于当监测到Linux***启动复位流程时,获取复位操作的复位信息,将复位信息缓存在预设的保留内存中,其中复位信息包括复位操作的场景信息、发起者信息以及当前***的状态信息;保留内存为***内存中的内存空间;
执行模块,用于当监测到Linux***执行复位操作时,启动预设内核,在所启动的预设内核中,将复位信息存储在硬盘中。
优选地,获取模块包括:
识别子模块,用于识别复位操作的场景信息;其中,复位操作的场景信息包括:***调用引起的复位、电源键引起的复位以及键盘组合键引起的复位中的一种;
信息获取子模块,用于获取复位操作的发起者信息以及当前***的状态信息,发起者信息至少包括:发起者的当前进程的进程标识符、与进程标识符对应的内核启动的第一个用户级INIT进程、所属终端、所属用户、启动时间以及执行的命令;当前***的状态信息至少包括:***执行复位操作前的中央处理器CPU状态、内存状态、输入/输出I/O状态。
优选地,识别子模块包括:
第一确定单元,用于当在***内核调用的处理流程中检测到用户态程序调用重新启动***REBOOT命令时,确定复位操作的场景信息为***调用引起的复位;
第二确定单元,用于当检测到高级配置和电源管理接口ACPI向***上报***复位对应的电源键事件时,确定复位操作的场景信息为电源键引起的复位;
第三确定单元,用于当在键盘处理函数中检测到与***复位对应的键盘处理函数时,确定复位操作的场景信息为键盘组合键引起的复位。
优选地,信息获取子模块包括:
第一获取单元,用于根据当前进程的进程标识符与进程标识符对应的INIT进程,获取父进程的进程标识符,所述父进程为发起者的当前进程与INIT进程之间的进程。
优选地,还包括:
内核错误处理模块,用于在获取模块获取复位操作的复位信息之后,
根据复位信息判断复位操作的场景信息是否为内核错误引起的***复位;
当判断结果为是时,标记复位操作为内核错误;
其中,当监测到Linux***执行复位操作时,启动预设内核的步骤之后,
在预设内核中,将复位操作以及标记信息对应存储在硬盘中并执行复位操作。
优选地,该装置还包括:
内存建立模块,用于在获取模块当监测到Linux***启动复位流程时之前,
建立保留内存,并配置保留内存的容量以及起始地址并记录。
优选地,获取模块还用于:
根据保留内存的容量以及起始地址查找保留内存,将复位信息缓存在保留内存中。
优选地,该装置还包括:
内核建立模块,用于在执行模块当监测到Linux***执行复位操作时之前,
建立预设内核,配置预设内核的容量以及起始地址并生成镜像文件,将镜像文件存储在硬盘中。
本发明的上述方案至少包括以下有益效果:
本发明提供的Linux***复位处理方法及装置,通过当监测到Linux***启动复位流程时,获取复位操作的复位信息,可及时地收集复位信息,追溯进程调用信息,找到复位操作的最原始的发起者;并在预设内核中将复位信息写入硬盘,仅存储复位信息,占用的存储空间小,且耗费时间较短,实现复位信息持久化,便于进行故障定位或者其他服务,增强***的可维护性。本发明解决了Linux***进行***复位时,复位信息难以收集,给故障定位带来困扰的问题。
附图说明
图1表示本发明的第一实施例提供的Linux***复位处理方法的基本步骤流程图;
图2为本发明的第二实施例的场景示意图;
图3为本发明的第二实施例的内核态控制模块执行的步骤的流程图;
图4为本发明的第二实施例的用户态复位信息收集模块执行的步骤的流程图;
图5为本发明的第二实施例的复位信息缓存模块执行的步骤的流程图;
图6为本发明的第二实施例的复位信息持久化模块执行的步骤的流程图;
图7为本发明的第二实施例的快速启动内核模块执行的步骤的流程图;
图8为本发明的第三实施例提供的Linux***复位处理装置的框图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的问题,提供了一种Linux***复位处理方法及装置。
第一实施例
参见图1,本发明的第一实施例提供了一种Linux***复位处理方法,包括:
步骤101,监测Linux***的复位场景。
其中,复位场景通常包括:***调用引起的复位、键盘操作引起的复位(键盘组合键,比如Ctrl+Alt+Delete组合键)、电源按键引起的复位以及内核错误引起的复位等。
步骤102,当监测到Linux***启动复位流程时,获取复位操作的复位信息,将复位信息缓存在预设的保留内存中,其中复位信息包括复位操作的场景信息、发起者信息以及当前***的状态信息;保留内存为***内存中的内存空间。
其中,保留内存为预设的***内存中的内存空间,用于缓存复位信息。以***调用引起的复位为例,当***复位流程启动时,可能硬盘已经无法访问,因此需要在内存中保留一段空间区域,用于缓存复位信息。当监测到Linux***启动复位流程时,也就是在复位流程的入口,***相应的处理逻辑,获取复位信息,将复位信息缓存在保留内存中,并提供读出和写入的接口地址,以便于写入硬盘。
步骤103,当监测到Linux***执行复位操作时,启动预设内核,在所启动的预设内核中,将复位信息存储在硬盘中。
其中,预设内核为脱离***内核以外的内核,用于执行***复位。本发明的实施例将复位信息写入硬盘的过程也在预设内核中执行。
本发明的上述实施例中,步骤102包括:
第一步,识别复位操作的场景信息;其中,复位操作的场景信息包括:***调用引起的复位、电源键引起的复位以及键盘组合键引起的复位中的一种;
第二步,获取复位操作的发起者信息以及当前***的状态信息,发起者信息至少包括:发起者的当前进程的进程标识符、与进程标识符对应的内核启动的第一个用户级INIT进程、所属终端、所属用户、启动时间以及执行的命令;当前***的状态信息至少包括:***执行复位操作前的中央处理器CPU状态、内存状态、输入/输出I/O状态。
优选地,上述第一步包括:
当在***内核调用的处理流程中检测到用户态程序调用重新启动***REBOOT命令时,确定复位操作的场景信息为***调用引起的复位;具体地,当***内核调用的处理流程中检测到由用户态程序调用REBOOT命令对应的程序语言时,可确认复位操作的场景信息为***调用。
当检测到高级配置和电源管理接口ACPI向***上报***复位对应的电源键事件时,确定复位操作的场景信息为电源键引起的复位;通常情况下,***硬件通过ACPI向***上报电源键事件时,比如短按电源键通常为重启(即***复位),那么当用户短按电源键时,ACPI会向***上报,那么接收到ACPI所上报的短按电源键的事件时,可确认复位操作的场景信息为电源键引起的复位。
当在键盘处理函数中检测到与***复位对应的键盘处理函数时,确定复位操作的场景信息为键盘组合键引起的复位;具体地,当用户在按下“Ctrl+Alt+Del”组合键以后,***响应中断事件会调用驱动层中断处理函数,然后进入内核输入子***进行子***分类,最后调用与***复位对应的键盘处理函数,启动复位流程。
优选地,上述第一步包括:
获取发起者的当前进程的进程标识符、所属终端、所属用户、启动时间以及执行的命令;
根据当前进程的进程标识符与进程标识符对应的INIT进程,获取父进程的进程标识符,所述父进程为发起者的当前进程与INIT进程之间的进程;其中,INIT进程是内核启动的第一个用户级进程,父进程为当前进程与INTI进程之间的进程,通常情况下,父进程会存在多个,通过当前进程逐级向前回溯便可获得各个父进程。获取上述信息是为了收集与复位操作有关的信息,增强***的可维护性。
本发明的上述实施例中,步骤102之后还包括:
根据复位信息判断复位操作的场景信息是否为内核错误引起的***复位,当判断结果为是时,标记复位操作为内核错误;
其中,当监测到Linux***执行复位操作时,启动预设内核的步骤之后,
在预设内核中,将复位操作以及标记信息对应存储在硬盘中并执行复位操作。
具体地,内核错误(Kernel panic)指操作***监测到内部的致命错误,并且无法安全处理此错误的情况;内核错误时可能***无法正常运行,因此只能在预设内核中,将复位场景做标记,并执行复位流程。
本发明的上述实施例中,步骤102之前,还包括:
建立保留内存,并配置保留内存的容量以及起始地址并记录。
相应地,步骤102中,将复位信息缓存在预设的保留内存中的步骤,包括:
根据保留内存的容量以及起始地址查找保留内存,将复位信息缓存在保留内存中。
其中,保留内存用于缓存复位信息;在获取复位信息之前建立保留内存,并配置容量以及起始地址,以便***根据起始地址,将复位信息缓存在保留内存中。
本发明的上述实施例中,步骤102之前,还包括:
建立预设内核,配置预设内核的容量以及起始地址并生成镜像文件,将镜像文件存储在硬盘中。
具体地,建立预设内核并配置容量以及起始地址,生成镜像文件存储在硬盘中,实现持久化。
本发明的上述实施例中,通过当监测到Linux***启动复位流程时,获取复位操作的复位信息,可及时地收集复位信息,追溯进程调用信息,找到复位操作的最原始的发起者;并在预设内核中将复位信息写入硬盘,仅存储复位信息,占用的存储空间小,且耗费时间较短,实现复位信息持久化,便于进行故障定位或者其他服务,增强***的可维护性。本发明解决了Linux***进行***复位时,复位信息难以收集,给故障定位带来困扰的问题。
第二实施例
本发明的第二实施例以一个具体实施例,介绍本发明提供的Linux***复位处理方法。参见图2,图2为本发明的第二实施例的场景示意图,图2中所示的Linux***包括:内核态控制模块201,用户态复位信息收集模块202,复位信息缓存模块203,快速启动内核模块205以及复位信息持久化模块204。
其中,内核态控制模块201,用于提供收集***复位信息的通用机制:在复位操作开始的时候,启动用户态复位信息收集模块202;
在执行处理器架构相关代码、执行***复位操作之前:启动快速启动内核模块205。
用户态复位信息收集模块202,用于提供收集***复位信息的各种策略,便于***把收集到的信息写入复位信息缓存模块203。
复位信息缓存模块203,用于提供读出、写入接口,并被用户态复位信息收集模块202调用,将复位信息缓存在复位信息缓存模块203中,被复位信息持久化模块204所调用,获取复位信息缓存模块203中所缓存的复位信息。
快速启动内核模块205,用于快速启动一个裁剪的、可用的内核,在内核的环境中,执行复位信息持久化模块204。
复位信息持久化模块204,从复位信息缓存模块203中读出复位信息,保存到硬盘上指定的文件中。
如图3所示,内核态控制模块201执行如下步骤:
步骤301,在***复位的入口,***处理逻辑:调用用户态复位信息收集模块202。其中,对于reboot***调用引起的复位:
在reboot***调用的流程中,***处理逻辑:
启动用户态信息收集模块202(可以通过call_usermodehelper等方法)。
对于键盘组合键引起的复位:
在键盘驱动的下半部处理中,***处理逻辑:
启动用户态信息收集模块202(可以通过call_usermodehelper等方法)。
对于电源按键引起的复位:
在ACPI电源按键驱动程序的处理中,***处理逻辑:
启动用户态信息收集模块202(可以通过call_usermodehelper等方法)。
需要说明的时,对于内核错误引起的复位,由于内核已经无法正常工作了,所以不能启动用户态信息收集模块,直接执行步骤302。
步骤302,在执行处理器架构相关代码、真正执行***复位操作之前,***逻辑:调用快速启动小内核模块。
对于reboot***调用引起的复位、键盘组合键引起的复位以及电源按键引起的复位,在执行***复位操作之前,***处理逻辑:
在内核态快速启动内核(可以通过kernel_kexec等方法)。
而对于内核错误引起的复位,在内核错误的处理流程中,***处理逻辑:
设置内核错误的标志,并快速启动内核(可以通过kernel_kexec等方法),并且在参数中传内核错误的标志。
如图4所示,用户态复位信息收集模块202,执行如下步骤:
步骤401,把当前复位场景的描述信息写入复位信息缓存模块203。
根据内核态控制模块传入的参数,分别把“reboot***调用引起的复位”、“按下电源按键引起的复位”、“按下键盘组合键引起的复位”等描述信息,写入复位信息缓存模块203中。
步骤402,判断是否需要记录进程回溯信息,如果需要则执行步骤403,否则执行步骤404。
步骤403,进程回溯信息处理。具体地,进程回溯处理包括:获取当前进程的ID号等信息;把收集到信息记录到复位信息缓存模块中;判断当前进程的父进程信息,如果已经是INIT进程了,则不需要继续往上一级回溯了,否则,把当前进程ID赋值为当前进程的父进程ID,继续循环回溯;
步骤404,判断是否需要记录***状态信息,如果需要则执行步骤35,获取CPU、内存、IO等的统计信息,否则结束流程。
如图5所示,复位信息缓存模块203,执行如下步骤:
步骤501,将用户态复位信息收集模块202中缓存的复位信息写入保留内存;
步骤502,记录保留内存的相关信息(容量和地址范围等)。
如图6所示,复位信息持久化模块204,执行如下步骤:
步骤601,判断复位场景是否为内核错误(是否传入内核错误标记),如果不是,则执行步骤602,把复位信息缓存模块中的数据持久化到硬盘上;否则执行步骤603,将内核错误标记持久化到硬盘上。
如图7所示,快速启动内核模块205,执行如下步骤:
步骤701,检测到内核控制模块发起快速启动时,执行步骤702,快速启动。
步骤703,启动复位信息持久化模块204,启动复位信息持久化模块204使把复位信息缓存模块中的数据持久化到硬盘上或将内核错误标记持久化到硬盘上。
本发明的上述实施例中,通过内核态控制模块201当监测到Linux***启动复位流程时,在***复位的入口,***处理逻辑:调用用户态复位信息收集模块202获取复位操作的复位信息并追溯进程调用信息,找到复位操作的最原始的发起者;并通过复位信息持久化模块204将复位信息写入硬盘,实现复位信息持久化,便于进行故障定位或者其他服务,增强***的可维护性。本发明解决了Linux***进行***复位时,复位信息难以收集,给故障定位带来困扰的问题。
第三实施例
参见图8,本发明的第三实施例提供了一种Linux***复位处理装置,包括:
检测模块801,用于监测Linux***的复位场景;
获取模块802,用于当监测到Linux***启动复位流程时,获取复位操作的复位信息,将复位信息缓存在预设的保留内存中,其中复位信息包括复位操作的场景信息、发起者信息以及当前***的状态信息;保留内存为***内存中的内存空间;
执行模块803,用于当监测到Linux***执行复位操作时,启动预设内核,在所启动的预设内核中,将复位信息存储在硬盘中。
优选地,获取模块802包括:
识别子模块,用于识别复位操作的场景信息;其中,复位操作的场景信息包括:***调用引起的复位、电源键引起的复位以及键盘组合键引起的复位中的一种;
信息获取子模块,用于获取复位操作的发起者信息以及当前***的状态信息,发起者信息至少包括:发起者的当前进程的进程标识符、与进程标识符对应的内核启动的第一个用户级INIT进程、所属终端、所属用户、启动时间以及执行的命令;当前***的状态信息至少包括:***执行复位操作前的中央处理器CPU状态、内存状态、输入/输出I/O状态。
优选地,识别子模块包括:
第一确定单元,用于当在***内核调用的处理流程中检测到用户态程序调用重新启动***REBOOT命令时,确定复位操作的场景信息为***调用引起的复位;
第二确定单元,用于当检测到高级配置和电源管理接口ACPI向***上报***复位对应的电源键事件时,确定复位操作的场景信息为电源键引起的复位;
第三确定单元,用于当在键盘处理函数中检测到与***复位对应的键盘处理函数时,确定复位操作的场景信息为键盘组合键引起的复位。
优选地,信息获取子模块包括:
第一获取单元,用于获取发起者的当前进程的进程标识符、所属终端、所属用户、启动时间以及执行的命令;
根据当前进程的进程标识符与进程标识符对应的INIT进程,获取父进程的进程标识符,所述父进程为发起者的当前进程与INIT进程之间的进程。
优选地,该装置还包括:
内核错误处理模块,用于在获取模块802获取复位操作的复位信息之后,
根据复位信息判断复位操作的场景信息是否为内核错误引起的***复位,当判断结果为是时,
标记复位操作为内核错误;
其中,当监测到Linux***执行复位操作时,启动预设内核的步骤之后,
在预设内核中,将复位操作以及标记信息对应存储在硬盘中并执行复位操作。
优选地,该装置还包括:
内存建立模块,用于在获取模块802当监测到Linux***启动复位流程时之前,
建立保留内存,并配置保留内存的容量以及起始地址并记录。
优选地,获取模块802还用于:
根据保留内存的容量以及起始地址查找保留内存,将复位信息缓存在保留内存中。
优选地,该装置还包括:
内核建立模块,用于在执行模块803当监测到Linux***执行复位操作时之前,
建立预设内核,配置预设内核的容量以及起始地址并生成镜像文件,将镜像文件存储在硬盘中。
本发明的上述实施例中,通过当监测到Linux***启动复位流程时,获取复位操作的复位信息,可及时地收集复位信息,追溯进程调用信息,找到复位操作的最原始的发起者;并在预设内核中将复位信息写入硬盘,仅存储复位信息,占用的存储空间小,且耗费时间较短,实现复位信息持久化,便于进行故障定位或者其他服务,增强***的可维护性。本发明解决了Linux***进行***复位时,复位信息难以收集,给故障定位带来困扰的问题。
需要说明的是,本发明实施例提供的Linux***复位处理装置是应用上述方法的装置,即上述方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (16)

1.一种Linux***复位处理方法,其特征在于,包括:
监测Linux***的复位场景;
当监测到Linux***启动复位流程时,获取复位操作的复位信息,将所述复位信息缓存在预设的保留内存中,其中所述复位信息包括所述复位操作的场景信息、发起者信息以及当前***的状态信息;所述保留内存为***内存中的内存空间;
当监测到Linux***执行复位操作时,启动预设内核,在所启动的预设内核中,将所述复位信息存储在硬盘中。
2.根据权利要求1所述的方法,其特征在于,所述获取复位操作的复位信息的步骤,包括:
识别所述复位操作的场景信息;其中,所述复位操作的场景信息包括:***调用引起的复位、电源键引起的复位以及键盘组合键引起的复位中的一种;
获取所述复位操作的发起者信息以及当前***的状态信息,所述发起者信息至少包括:所述发起者的当前进程的进程标识符、与所述进程标识符对应的内核启动的第一个用户级INIT进程、所属终端、所属用户、启动时间以及执行的命令;所述当前***的状态信息至少包括:***执行所述复位操作前的中央处理器CPU状态、内存状态、输入/输出I/O状态。
3.根据权利要求2所述的方法,其特征在于,所述识别所述复位操作的场景信息的步骤包括:
当在***内核调用的处理流程中检测到用户态程序调用重新启动***REBOOT命令时,确定所述复位操作的场景信息为***调用引起的复位;
当检测到高级配置和电源管理接口ACPI向***上报***复位对应的电源键事件时,确定所述复位操作的场景信息为电源键引起的复位;
当在键盘处理函数中检测到与***复位对应的键盘处理函数时,确定所述复位操作的场景信息为键盘组合键引起的复位。
4.根据权利要求2所述的方法,其特征在于,所述获取所述复位操作的发起者信息的步骤,包括:
获取所述发起者的当前进程的进程标识符、所属终端、所属用户、启动时间以及执行的命令;
根据所述当前进程的进程标识符与所述进程标识符对应的INIT进程,获取父进程的进程标识符,所述父进程为所述发起者的当前进程与所述INIT进程之间的进程。
5.根据权利要求1所述的方法,其特征在于,所述获取复位操作的复位信息的步骤之后,所述方法还包括:
根据所述复位信息判断所述复位操作的场景信息是否为内核错误引起的***复位;
当判断结果为是时,标记所述复位操作为内核错误;
其中,当监测到Linux***执行复位操作时,启动预设内核的步骤之后,
在所述预设内核中,将所述复位操作以及标记信息对应存储在硬盘中并执行所述复位操作。
6.根据权利要求1所述的方法,其特征在于,所述当监测到Linux***启动复位流程时的步骤之前,所述方法还包括:
建立保留内存,并配置所述保留内存的容量以及起始地址并记录。
7.根据权利要求6所述的方法,其特征在于,所述将所述复位信息缓存在预设的保留内存中的步骤,包括:
根据所述保留内存的容量以及起始地址查找所述保留内存,将所述复位信息缓存在所述保留内存中。
8.根据权利要求1所述的方法,其特征在于,所述当监测到Linux***执行复位操作时的步骤之前,所述方法还包括:
建立预设内核,配置所述预设内核的容量以及起始地址并生成镜像文件,将所述镜像文件存储在硬盘中。
9.一种Linux***复位处理装置,其特征在于,包括:
检测模块,用于监测Linux***的复位场景;
获取模块,用于当监测到Linux***启动复位流程时,获取复位操作的复位信息,将所述复位信息缓存在预设的保留内存中,其中所述复位信息包括所述复位操作的场景信息、发起者信息以及当前***的状态信息;所述保留内存为***内存中的内存空间;
执行模块,用于当监测到Linux***执行复位操作时,启动预设内核,在所启动的预设内核中,将所述复位信息存储在硬盘中。
10.根据权利要求9所述的装置,其特征在于,所述获取模块包括:
识别子模块,用于识别所述复位操作的场景信息;其中,所述复位操作的场景信息包括:***调用引起的复位、电源键引起的复位以及键盘组合键引起的复位中的一种;
信息获取子模块,用于获取所述复位操作的发起者信息以及当前***的状态信息,所述发起者信息至少包括:所述发起者的当前进程的进程标识符、与所述进程标识符对应的内核启动的第一个用户级INIT进程、所属终端、所属用户、启动时间以及执行的命令;所述当前***的状态信息至少包括:***执行所述复位操作前的中央处理器CPU状态、内存状态、输入/输出I/O状态。
11.根据权利要求10所述的装置,其特征在于,所述识别子模块包括:
第一确定单元,用于当在***内核调用的处理流程中检测到用户态程序调用重新启动***REBOOT命令时,确定所述复位操作的场景信息为***调用引起的复位;
第二确定单元,用于当检测到高级配置和电源管理接口ACPI向***上报***复位对应的电源键事件时,确定所述复位操作的场景信息为电源键引起的复位;
第三确定单元,用于当在键盘处理函数中检测到与***复位对应的键盘处理函数时,确定所述复位操作的场景信息为键盘组合键引起的复位。
12.根据权利要求10所述的装置,其特征在于,所述信息获取子模块包括:
第一获取单元,用于获取所述发起者的当前进程的进程标识符、所属终端、所属用户、启动时间以及执行的命令;
根据所述当前进程的进程标识符与所述进程标识符对应的INIT进程,获取父进程的进程标识符,所述父进程为所述发起者的当前进程与所述INIT进程之间的进程。
13.根据权利要求9所述的装置,其特征在于,还包括:
内核错误处理模块,用于在所述获取模块获取复位操作的复位信息之后,
根据所述复位信息判断所述复位操作的场景信息是否为内核错误引起的***复位;
当判断结果为是时,标记所述复位操作为内核错误;
其中,当监测到Linux***执行复位操作时,启动预设内核的步骤之后,
在所述预设内核中,将所述复位操作以及标记信息对应存储在硬盘中并执行所述复位操作。
14.根据权利要求9所述的装置,其特征在于,还包括:
内存建立模块,用于在所述获取模块当监测到Linux***启动复位流程时之前,
建立保留内存,并配置所述保留内存的容量以及起始地址并记录。
15.根据权利要求14所述的装置,其特征在于,所述获取模块还用于:
根据所述保留内存的容量以及起始地址查找所述保留内存,将所述复位信息缓存在所述保留内存中。
16.根据权利要求9所述的装置,其特征在于,还包括:
内核建立模块,用于在所述执行模块当监测到Linux***执行复位操作时之前,
建立预设内核,配置所述预设内核的容量以及起始地址并生成镜像文件,将所述镜像文件存储在硬盘中。
CN201610123998.3A 2016-03-04 2016-03-04 一种Linux***复位处理方法及装置 Withdrawn CN107153453A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610123998.3A CN107153453A (zh) 2016-03-04 2016-03-04 一种Linux***复位处理方法及装置
PCT/CN2017/073826 WO2017148271A1 (zh) 2016-03-04 2017-02-16 一种Linux***复位处理方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610123998.3A CN107153453A (zh) 2016-03-04 2016-03-04 一种Linux***复位处理方法及装置

Publications (1)

Publication Number Publication Date
CN107153453A true CN107153453A (zh) 2017-09-12

Family

ID=59743480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610123998.3A Withdrawn CN107153453A (zh) 2016-03-04 2016-03-04 一种Linux***复位处理方法及装置

Country Status (2)

Country Link
CN (1) CN107153453A (zh)
WO (1) WO2017148271A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725990A (zh) * 2017-10-31 2019-05-07 北京国双科技有限公司 进程控制方法和装置
CN113407020A (zh) * 2021-06-09 2021-09-17 北京集创北方科技股份有限公司 组件启动方法及装置、触控芯片和电子设备
CN116701041A (zh) * 2023-07-27 2023-09-05 飞腾信息技术有限公司 一种内存数据保留方法、保留装置和相关设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158945B (zh) * 2019-12-31 2023-12-22 奇安信科技集团股份有限公司 内核故障处理方法、装置、网络安全设备和可读存储介质
CN116796308B (zh) * 2023-02-03 2024-04-12 安芯网盾(北京)科技有限公司 一种基于Linux内核的伪装进程可执行程序检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149699A (zh) * 2006-09-21 2008-03-26 中兴通讯股份有限公司 一种可靠获取异常和复位信息的方法
US20090222700A1 (en) * 2008-02-29 2009-09-03 Wade Carter Providing System Reset Information To Service Provider
CN103294163A (zh) * 2012-01-26 2013-09-11 株式会社理光 信息处理装置、信息处理***和节能控制方法
CN104714863A (zh) * 2015-02-06 2015-06-17 浪潮电子信息产业股份有限公司 一种基于Linux操作***的***宕机后Raid卡日志完整保存的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774636B2 (en) * 2006-10-31 2010-08-10 Hewlett-Packard Development Company, L.P. Method and system for kernel panic recovery
CN102929747B (zh) * 2012-11-05 2015-07-01 中标软件有限公司 基于龙芯服务器的Linux操作***崩溃转储的处理方法
CN103809989B (zh) * 2012-11-08 2017-07-11 英华达(南京)科技有限公司 操作***发生核心崩溃情况下读取完整核心日志的方法
CN105204977A (zh) * 2014-06-30 2015-12-30 中兴通讯股份有限公司 一种***异常的捕获方法、主***、影子***及智能设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149699A (zh) * 2006-09-21 2008-03-26 中兴通讯股份有限公司 一种可靠获取异常和复位信息的方法
US20090222700A1 (en) * 2008-02-29 2009-09-03 Wade Carter Providing System Reset Information To Service Provider
CN103294163A (zh) * 2012-01-26 2013-09-11 株式会社理光 信息处理装置、信息处理***和节能控制方法
CN104714863A (zh) * 2015-02-06 2015-06-17 浪潮电子信息产业股份有限公司 一种基于Linux操作***的***宕机后Raid卡日志完整保存的方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725990A (zh) * 2017-10-31 2019-05-07 北京国双科技有限公司 进程控制方法和装置
CN113407020A (zh) * 2021-06-09 2021-09-17 北京集创北方科技股份有限公司 组件启动方法及装置、触控芯片和电子设备
CN113407020B (zh) * 2021-06-09 2024-03-22 北京集创北方科技股份有限公司 组件启动方法及装置、触控芯片和电子设备
CN116701041A (zh) * 2023-07-27 2023-09-05 飞腾信息技术有限公司 一种内存数据保留方法、保留装置和相关设备
CN116701041B (zh) * 2023-07-27 2023-11-10 飞腾信息技术有限公司 一种内存数据保留方法、保留装置和相关设备

Also Published As

Publication number Publication date
WO2017148271A1 (zh) 2017-09-08

Similar Documents

Publication Publication Date Title
CN107153453A (zh) 一种Linux***复位处理方法及装置
CN109284269B (zh) 异常日志分析方法、装置、存储介质及服务器
CN109240886B (zh) 异常处理方法、装置、计算机设备以及存储介质
WO2020237877A1 (zh) 日志监控方法、装置、终端与存储介质
US8448013B2 (en) Failure-specific data collection and recovery for enterprise storage controllers
CN104424094A (zh) 一种异常信息获取方法、装置及智能终端设备
CN110515758B (zh) 一种故障定位方法、装置、计算机设备及存储介质
CN108874441B (zh) 一种板卡配置方法、装置、服务器和存储介质
CN110647472A (zh) 崩溃信息统计方法、装置、计算机设备及存储介质
CN112306833A (zh) 应用程序的崩溃统计方法、装置、计算机设备及存储介质
CN109542341B (zh) 一种读写io监测方法、装置、终端及计算机可读存储介质
CN111784176A (zh) 一种数据处理方法、装置、服务器及介质
CN113934758A (zh) 车辆故障修复方法、装置、车载终端、服务器及存储介质
CN111130888B (zh) 故障信息收集与提示方法、装置、存储介质和移动终端
CN111737082A (zh) 容器及容器应用的监控方法、装置、设备和介质
US6738885B1 (en) Device and method for storing information in memory
CN116627737A (zh) 一种硬盘测试方法、装置、设备及介质
CN109634796A (zh) 一种计算机的故障诊断方法、装置及***
CN109491822A (zh) 一种***重启检测方法、装置、终端及存储介质
CN110620698A (zh) 一种软件异常诊断方法、装置、设备及***
CN114564354A (zh) 数据库性能监控方法、装置、电子设备及存储介质
CN113468029A (zh) 日志管理方法、装置、电子设备和可读存储介质
CN115102838A (zh) 服务器宕机风险的应急处理方法和装置、电子设备
CN114706371A (zh) 整车网络不休眠诊断方法、装置、电子设备及存储介质
CN112818204A (zh) 一种业务的处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20170912