首页 / 专利库 / 电脑零配件 / 计算机系统 / 一种Linux下的启动计算机系统的方法及系统

一种Linux下的启动计算机系统的方法及系统

阅读:1032发布:2020-06-29

专利汇可以提供一种Linux下的启动计算机系统的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种Linux下的启动 计算机系统 的方法以及系统。本发明的方法主要是在所述计算机系统的系统 内核 启动后启动系统服务以完成引导 进程 从而正常启动所述计算机系统,其中:在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。根据本发明的方法及系统,可以在Linux 操作系统 启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护 硬件 以及系统。,下面是一种Linux下的启动计算机系统的方法及系统专利的具体信息内容。

1.一种Linux下的启动计算机系统的方法,其特征在于,在所述计算机系统的系统内核启动后启动系统服务以完成引导进程从而正常启动所述计算机系统,所述系统服务包括多个,多个系统服务并行启动或者并行串行结合启动,其中:
在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;
当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;
当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。
2.根据权利要求1所述的方法,其特征在于,当启动失败的所述系统服务重新启动后仍然启动失败时再次重新启动启动失败的所述系统服务。
3.根据权利要求2所述的方法,其特征在于,设定特定数值的重启次数,当针对同一所述系统服务的重新启动次数达到所述重启次数时进行所述计算机系统的重启操作。
4.根据权利要求1所述的方法,其特征在于,通过对服务进程的判断来监控所述系统服务的启动状态。
5.根据权利要求1所述的方法,其特征在于,在所述计算机系统启动过程中的特定的时间点开始监控所述系统服务的启动状态。
6.一种Linux下的启动计算机系统的系统,其特征在于,所述系统包含:
启动模,用于运行计算机系统的系统服务以正常启动所述计算机系统,其中,所述系统服务包括多个,多个系统服务并行启动或者并行串行结合启动;
监控模块,用于在所述启动模块运行所述系统服务的过程中监控并输出特定的所述系统服务的启动状态;
服务重启模块,用于在所述系统服务的启动状态异常时重新启动所述系统服务。
7.根据权利要求6所述的系统,其特征在于,所述服务重启模块被构造成当所述系统服务重新启动后仍然启动失败时再次重新启动所述系统服务。
8.根据权利要求7所述的系统,其特征在于,所述系统还包含计算机系统重启模块以及服务重启次数计数器,其中:
所述重启次数计数器用于计数同一所述系统服务的重启次数;
所述计算机系统重启模块被构造成当同一所述系统服务的重启次数大于特定值时重新启动所述计算机系统。
9.根据权利要求6所述的系统,其特征在于,所述监控模块被构造成通过对服务进程的判断来监控所述系统服务的启动状态。
10.根据权利要求6所述的系统,其特征在于,所述监控模块被构造成在所述启动模块启动所述计算机系统的过程中的特定的时间点开始监控所述系统服务的启动状态。

说明书全文

一种Linux下的启动计算机系统的方法及系统

技术领域

[0001] 本发明涉及计算机领域,具体说涉及一种Linux下的启动计算机系统的方法及系统。

背景技术

[0002] 在当前技术下,Linux计算机系统的启动模式通常是在系统内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级进程(init)的方式,完成引导进程。
[0003] 对于Linux系统的运行来说,init程序是最基本的程序之一。init有许多很重要的任务,比如启动用于用户登录的服务(getty)、实现运行级别以及处理孤立进程。当init开始运行,它通过执行一些管理任务来结束引导进程,例如检查文件系统、清理临时文件(/tmp)、启动各种服务以及为每个终端和虚拟控制台启动getty,在这些地方用户将登录系统。
[0004] init在Linux系统启动过程中的作用决定了init程序的处理方式直接影响到Linux系统的启动成败。然而在当前Linux系统中,由于init程序的配置不当在启动过程中存在诸多问题。
[0005] 例如,Systemd是目前Linux系统中较常用的一种初始化系统程序init,它主要的设计目标是在保有与原有的初始化系统程序init(sysvinit)的兼容性的基础上,克服sysvinit的固有缺点,提高系统的启动速度。为了减少系统的启动时间,Systemd有两个主要的目标:
[0006] (1)尽可能的启动更少的进程
[0007] (2)尽可能将更多的进程并行启动
[0008] Systemd虽然带来了Linux系统启动速度的大幅提升,但是大量的并行启动进程,也带来了一些不可预知的潜在问题。例如在某个服务启动异常时,缺少对异常的有效处理,由此导致系统在此时会由于具体服务的异常,出现黑屏、死机等无法进入系统的异常情况。对于普通用户来讲,此时只能强制关闭电源。这样无疑对计算机硬件以及系统带来较大的危害。
[0009] 因此,针对当前Linux系统启动过程存在的问题,需要一种新的Linux下的启动计算机系统的方法。

发明内容

[0010] 针对当前Linux系统启动过程存在的问题,本发明提供了一种Linux下的启动计算机系统的方法,其特征在于,在所述计算机系统的系统内核启动后启动系统服务以完成引导进程从而正常启动所述计算机系统,其中:
[0011] 在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;
[0012] 当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;
[0013] 当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。
[0014] 在一实施例中,当启动失败的所述系统服务重新启动后仍然启动失败时再次重新启动启动失败的所述系统服务。
[0015] 在一实施例中,设定特定数值的重启次数,当针对同一所述系统服务的重新启动次数达到所述重启次数时进行所述计算机系统的重启操作。
[0016] 在一实施例中,通过对服务进程的判断来监控所述系统服务的启动状态。
[0017] 在一实施例中,在所述计算机系统启动过程中的特定的时间点开始监控所述系统服务的启动状态。
[0018] 本发明还提出了一种Linux下的启动计算机系统的系统,所述系统包含:
[0019] 启动模,用于运行计算机系统的系统服务以正常启动所述计算机系统;
[0020] 监控模块,用于在所述启动模块运行所述系统服务的过程中监控并输出特定的所述系统服务的启动状态;
[0021] 服务重启模块,用于在所述系统服务的启动状态异常时重新启动所述系统服务。
[0022] 在一实施例中,所述服务重启模块被构造成当所述系统服务重新启动后仍然启动失败时再次重新启动所述系统服务。
[0023] 在一实施例中,所述系统包含计算机计算机系统重启模块以及服务重启次数计数器,其中:
[0024] 所述重启次数计数器用于计数同一所述系统服务的重启次数;
[0025] 所述计算机计算机系统重启模块被构造成当同一所述系统服务的重启次数大于特定值时重新启动所述计算机系统。
[0026] 在一实施例中,所述监控模块被构造成通过对服务进程的判断来监控所述系统服务的启动状态。
[0027] 在一实施例中,所述监控模块被构造成在所述启动模块启动所述计算机系统的过程中的特定的时间点开始监控所述系统服务的启动状态。
[0028] 根据本发明的方法及系统,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。
[0029] 本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。

附图说明

[0030] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0031] 图1是根据本发明一实施例的方法执行流程图
[0032] 图2是根据本发明一实施例系统结构简图。

具体实施方式

[0033] 以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0034] 对于Linux系统的运行来说,init程序是最基本的程序之一。init在Linux系统启动过程中的作用决定了init程序的处理方式直接影响到Linux系统的启动成败。然而在当前Linux系统中,由于init程序的配置不当在启动过程中存在诸多问题。例如在某个服务启动异常时,缺少对异常的有效处理,由此导致系统在此时会由于具体服务的异常,出现黑屏、死机等无法进入系统的异常情况。
[0035] 针对上述问题,本发明提出了一种Linux下的启动计算机系统的方法。接下来基于附图详细描述本发明的方法的执行过程。附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0036] Linux计算机系统的正常启动过程通常是在系统内核启动后启动系统服务以完成引导进程从而正常启动计算机系统。本发明的方法的执行基础是对系统服务的启动情况进行监控。如图1所示,首先执行步骤S110,系统启动步骤,启动系统内核并在系统内核启动后启动系统的系统服务(利用init程序)。
[0037] 紧接着,在启动系统服务的过程中执行步骤S120,启动状态监控,监控特定的系统服务的启动状态。Linux计算机系统的init程序通常采用并行、串行或并行串行相结合的方式启动系统服务。在本实施例中,通过对服务进程的判断来监控系统服务的启动状态。具体的,对特定的重要服务编写监控程序,通过对服务进程的判断来监控该服务是否异常。
[0038] Linux计算机系统的通常包含多个系统服务,如果针对所有的系统服务进行监控势必会消耗众多系统资源。为了节约系统资源,在本实施例中,步骤S120主要针对相对重要的特定的几个系统服务进行监控(关键的系统服务或是出错率较高的系统服务)。针对系统服务的启动顺序在系统启动过程中选择特定的时间点开始监控。具体的,编写xx.service文件,根据具体的需求使监控程序在合适的时机启动。另外,完成xx.service文件的编写后,使用命令systemctl enable xx..service命令,使其开机启动。
[0039] 当系统服务启动成功时继续正常启动其他系统服务以正常启动Linux计算机系统并继续执行步骤S120。当系统服务启动失败时则执行步骤S140,重启服务,重新启动启动失败的系统服务。
[0040] 由于在某些情况系,启动失败的系统服务并不能在单次重启后就立即成功启动,因此在本实施例中,当启动失败的系统服务重新启动后仍然启动失败时会再次重新启动启动失败的系统服务。
[0041] 然而在某些特定情况下,会发生同一系统服务连续多次重新启动仍然启动失败的情况。这时就会导致无限重启的死循环状态。为了避免这一情况的发生,在本实施例中,预先设定特定数值的重启次数,当针对同一系统服务的重新启动次数达到重启次数时就不在对此系统服务进行单独的重启操作,而是进行整个计算机系统的重启操作。
[0042] 具体的,在系统服务每次启动失败后先执行步骤S130,服务重启计数步骤,计算当前的系统服务重启(启动失败的)次数。如果重启(启动失败的)次数小于预设的重启次数时执行步骤S140,重启服务步骤。如果重启(启动失败的)次数小于预设的重启次数时执行步骤S150,重启系统步骤。
[0043] 综上,根据本发明的方法,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。
[0044] 在根据本发明的一具体的应用实例中,以图形界面管理(The GNOME Display Manager,gdm)服务为例。在linux桌面操作系统中,gdm服务的启动异常会导致系统无法进入图形界面,黑屏等等异常情况。对于此种异常,本发明的Linux桌面系统启动方法的具体步骤为:
[0045] (1)编写监控程序及服务(service)文件,监控gdm相关服务的情况。将监控程序启动在graphical.target对应运行级下;
[0046] (2)在启动过程中,若gdm服务启动时异常,则执行systemctl restart gdm.service命令;
[0047] (3)再次判断服务是否正常启动,如果正常启动,则不做处理;
[0048] (4)如果仍启动异常,则跳到步骤(2);
[0049] (5)再次判断服务是否正常启动,如果正常启动,则不做处理,如果仍异常,则执行重启操作。
[0050] 对于步骤(1)中将监控服务放在graphical.target对应运行级下启动,是为了适应在某些情况下,用户需要进入无图形化模式,此时gdm服务不会启动。
[0051] 在根据本发明的另一具体的应用实例中,以图形驱动(Xorg)服务为例。本发明的Linux桌面系统启动方法的具体步骤为:
[0052] (1)编写监控程序及service文件,监控Xorg的启动情况,将监控程序启动在graphical.target对应运行级下;
[0053] (2)在启动过程中,若Xorg启动时异常,则执行systemctl restart gdm.service;
[0054] (3)再次判断Xorg是否正常启动,如果正常启动,则不做处理;
[0055] (4)如果仍启动异常,则跳到步骤(2);
[0056] (5)再次判断服务是否正常启动,如果正常启动,则不做处理,如果仍异常,则执行重启操作。
[0057] 对于步骤(1)中将监控服务放在graphical.target对应运行级下启动,是为了适应在某些情况下,用户需要进入无图形化模式,此时Xorg不会启动。
[0058] 对于步骤(2)中的Xorg启动异常,通常包括两种情况:一是Xorg启动失败;二是Xorg正常起来,但是DISPLAY不在:0上。
[0059] 基于本发明的方法,本发明还提出了一种Linux下的启动计算机系统的系统。如图2所示,系统包含启动模块210、监控模块220以及服务重启模块230。启动模块210用于运行计算机系统的系统服务以正常启动计算机系统。监控模块220与启动模块210相连,用于在启动模块210运行系统服务的过程中监控并输出特定的系统服务的启动状态。服务重启模块230与监控模块220相连,用于在系统服务的启动状态异常时重新启动系统服务。
[0060] 进一步的,监控模块220被构造成通过对服务进程的判断来监控系统服务的启动状态。具体的,监控模块220被构造成在启动模块启动系统过程中的特定的时间点开始监控。
[0061] 进一步的,服务重启模块230被构造成当系统服务重新启动后仍然启动失败时再次重新启动系统服务。为了避免出现无限次重新启动的死循环,系统还包含计算机系统重启模块240以及服务重启次数计数器250。重启次数计数器250与服务重启模块230相连,用于计数同一系统服务的重启次数。计算机系统重启模块240与重启次数计数器250相连,其被构造成当同一系统服务的重启次数大于特定值时重新启动系统。
[0062] 综上,根据本发明的方法及系统,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。
[0063] 虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈