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

技术编号:12807098 阅读:93 留言:0更新日期:2016-02-03 21:14
本发明专利技术公开了一种Linux下的启动计算机系统的方法以及系统。本发明专利技术的方法主要是在所述计算机系统的系统内核启动后启动系统服务以完成引导进程从而正常启动所述计算机系统,其中:在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。根据本发明专利技术的方法及系统,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体说涉及一种Linux下的启动计算机系统的方法及系统
技术介绍
在当前技术下,Linux计算机系统的启动模式通常是在系统内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级进程(init)的方式,完成引导进程。对于Linux系统的运行来说,init程序是最基本的程序之一。init有许多很重要的任务,比如启动用于用户登录的服务(getty)、实现运行级别以及处理孤立进程。当init开始运行,它通过执行一些管理任务来结束引导进程,例如检查文件系统、清理临时文件(/tmp)、启动各种服务以及为每个终端和虚拟控制台启动getty,在这些地方用户将登录系统。init在Linux系统启动过程中的作用决定了 init程序的处理方式直接影响到Linux系统的启动成败。然而在当前Linux系统中,由于init程序的配置不当在启动过程中存在诸多问题。例如,Systemd是目前Linux系统中较常用的一种初始化系统程序init,它主要的设计目标是在保有与原有的初始化系统程序init(SySVinit)的兼容性的基础上,克服sysvinit的固有缺点,提高系统的启动速度。为了减少系统的启动时间,Systemd有两个主要的目标:(1)尽可能的启动更少的进程(2)尽可能将更多的进程并行启动Systemd虽然带来了 Linux系统启动速度的大幅提升,但是大量的并行启动进程,也带来了一些不可预知的潜在问题。例如在某个服务启动异常时,缺少对异常的有效处理,由此导致系统在此时会由于具体服务的异常,出现黑屏、死机等无法进入系统的异常情况。对于普通用户来讲,此时只能强制关闭电源。这样无疑对计算机硬件以及系统带来较大的危害。因此,针对当前Linux系统启动过程存在的问题,需要一种新的Linux下的启动计算机系统的方法。
技术实现思路
针对当前Linux系统启动过程存在的问题,本专利技术提供了一种Linux下的启动计算机系统的方法,其特征在于,在所述计算机系统的系统内核启动后启动系统服务以完成引导进程从而正常启动所述计算机系统,其中:在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。在一实施例中,当启动失败的所述系统服务重新启动后仍然启动失败时再次重新启动启动失败的所述系统服务。在一实施例中,设定特定数值的重启次数,当针对同一所述系统服务的重新启动次数达到所述重启次数时进行所述计算机系统的重启操作。在一实施例中,通过对服务进程的判断来监控所述系统服务的启动状态。在一实施例中,在所述计算机系统启动过程中的特定的时间点开始监控所述系统服务的启动状态。本专利技术还提出了一种Linux下的启动计算机系统的系统,所述系统包含:启动模块,用于运行计算机系统的系统服务以正常启动所述计算机系统;监控模块,用于在所述启动模块运行所述系统服务的过程中监控并输出特定的所述系统服务的启动状态;服务重启模块,用于在所述系统服务的启动状态异常时重新启动所述系统服务。在一实施例中,所述服务重启模块被构造成当所述系统服务重新启动后仍然启动失败时再次重新启动所述系统服务。在一实施例中,所述系统包含计算机计算机系统重启模块以及服务重启次数计数器,其中:所述重启次数计数器用于计数同一所述系统服务的重启次数;所述计算机计算机系统重启模块被构造成当同一所述系统服务的重启次数大于特定值时重新启动所述计算机系统。在一实施例中,所述监控模块被构造成通过对服务进程的判断来监控所述系统服务的启动状态。在一实施例中,所述监控模块被构造成在所述启动模块启动所述计算机系统的过程中的特定的时间点开始监控所述系统服务的启动状态。根据本专利技术的方法及系统,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。本专利技术的其它特征或优点将在随后的说明书中阐述。并且,本专利技术的部分特征或优点将通过说明书而变得显而易见,或者通过实施本专利技术而被了解。本专利技术的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。【附图说明】附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例共同用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1是根据本专利技术一实施例的方法执行流程图;图2是根据本专利技术一实施例系统结构简图。【具体实施方式】以下将结合附图及实施例来详细说明本专利技术的实施方式,借此本专利技术的实施人员可以充分理解本专利技术如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本专利技术。需要说明的是,只要不构成冲突,本专利技术中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本专利技术的保护范围之内。对于Linux系统的运行来说,init程序是最基本的程序之一。init在Linux系统启动过程中的作用决定了 init程序的处理方式直接影响到Linux系统的启动成败。然而在当前Linux系统中,由于init程序的配置不当在启动过程中存在诸多问题。例如在某个服务启动异常时,缺少对异常的有效处理,由此导致系统在此时会由于具体服务的异常,出现黑屏、死机等无法进入系统的异常情况。针对上述问题,本专利技术提出了一种Linux下的启动计算机系统的方法。接下来基于附图详细描述本专利技术的方法的执行过程。附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。Linux计算机系统的正常启动过程通常是在系统内核启动后启动系统服务以完成引导进程从而正常启动计算机系统。本专利技术的方法的执行基础是对系统服务的启动情况进行监控。如图1所示,首先执行步骤S110,系统启动步骤,启动系统内核并在系统内核启动后启动系统的系统服务(利用init程序)。紧接着,在启动系统服务的过程中执行步骤S120,启动状态监控,监控特定的系统服务的启动状态。Linux计算机系统的init程序通常采用并行、串行或并行串行相结合的方式启动系统服务。在本实施例中,通过对服务进程的判断来监控系统服务的启动状态。具体的,对特定的重要服务编写监控程序,通过对服务进程的判断来监控该服务是否异常。Linux计算机系统的通常包含多个系统服务,如果针对所有的系统服务进行监控势必会消耗众多系统资源。为了节约系统资源,在本实施例中,步骤S120主要针对相对重要的特定的几个系统服务进行监控(关键的系统服务或是出错率较高的系统服务)。针对系统服务的启动顺序在系统启动过程中选择特定的时间点开始监控。具体的,编写XX.service文件,根据具体的需求使监控程序在合适的时机启动。另外,完成xx.service文件的编写后,使用命令systemctl enable xx..service命令,使其开机启动。当系统服务启动成功时继续正常启动其他系统服务以正常启动Linux计算机系统并继续执行步骤S本文档来自技高网
...

【技术保护点】
一种Linux下的启动计算机系统的方法,其特征在于,在所述计算机系统的系统内核启动后启动系统服务以完成引导进程从而正常启动所述计算机系统,其中:在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。

【技术特征摘要】

【专利技术属性】
技术研发人员:王飞金东阳毛晨涛沈永康张永军申利飞
申请(专利权)人:中标软件有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1