CN105302611A - 一种Linux下的启动计算机系统的方法及系统 - Google Patents
一种Linux下的启动计算机系统的方法及系统 Download PDFInfo
- Publication number
- CN105302611A CN105302611A CN201510779248.7A CN201510779248A CN105302611A CN 105302611 A CN105302611 A CN 105302611A CN 201510779248 A CN201510779248 A CN 201510779248A CN 105302611 A CN105302611 A CN 105302611A
- Authority
- CN
- China
- Prior art keywords
- service
- system service
- starting
- module
- described system
- 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.)
- Granted
Links
Abstract
本发明公开了一种Linux下的启动计算机系统的方法以及系统。本发明的方法主要是在所述计算机系统的系统内核启动后启动系统服务以完成引导进程从而正常启动所述计算机系统,其中:在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。根据本发明的方法及系统,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。
Description
技术领域
本发明涉及计算机领域,具体说涉及一种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文件的编写后,使用命令systemctlenablexx..service命令,使其开机启动。
当系统服务启动成功时继续正常启动其他系统服务以正常启动Linux计算机系统并继续执行步骤S120。当系统服务启动失败时则执行步骤S140,重启服务,重新启动启动失败的系统服务。
由于在某些情况系,启动失败的系统服务并不能在单次重启后就立即成功启动,因此在本实施例中,当启动失败的系统服务重新启动后仍然启动失败时会再次重新启动启动失败的系统服务。
然而在某些特定情况下,会发生同一系统服务连续多次重新启动仍然启动失败的情况。这时就会导致无限重启的死循环状态。为了避免这一情况的发生,在本实施例中,预先设定特定数值的重启次数,当针对同一系统服务的重新启动次数达到重启次数时就不在对此系统服务进行单独的重启操作,而是进行整个计算机系统的重启操作。
具体的,在系统服务每次启动失败后先执行步骤S130,服务重启计数步骤,计算当前的系统服务重启(启动失败的)次数。如果重启(启动失败的)次数小于预设的重启次数时执行步骤S140,重启服务步骤。如果重启(启动失败的)次数小于预设的重启次数时执行步骤S150,重启系统步骤。
综上,根据本发明的方法,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。
在根据本发明的一具体的应用实例中,以图形界面管理(TheGNOMEDisplayManager,gdm)服务为例。在linux桌面操作系统中,gdm服务的启动异常会导致系统无法进入图形界面,黑屏等等异常情况。对于此种异常,本发明的Linux桌面系统启动方法的具体步骤为:
(1)编写监控程序及服务(service)文件,监控gdm相关服务的情况。将监控程序启动在graphical.target对应运行级下;
(2)在启动过程中,若gdm服务启动时异常,则执行systemctlrestartgdm.service命令;
(3)再次判断服务是否正常启动,如果正常启动,则不做处理;
(4)如果仍启动异常,则跳到步骤(2);
(5)再次判断服务是否正常启动,如果正常启动,则不做处理,如果仍异常,则执行重启操作。
对于步骤(1)中将监控服务放在graphical.target对应运行级下启动,是为了适应在某些情况下,用户需要进入无图形化模式,此时gdm服务不会启动。
在根据本发明的另一具体的应用实例中,以图形驱动(Xorg)服务为例。本发明的Linux桌面系统启动方法的具体步骤为:
(1)编写监控程序及service文件,监控Xorg的启动情况,将监控程序启动在graphical.target对应运行级下;
(2)在启动过程中,若Xorg启动时异常,则执行systemctlrestartgdm.service;
(3)再次判断Xorg是否正常启动,如果正常启动,则不做处理;
(4)如果仍启动异常,则跳到步骤(2);
(5)再次判断服务是否正常启动,如果正常启动,则不做处理,如果仍异常,则执行重启操作。
对于步骤(1)中将监控服务放在graphical.target对应运行级下启动,是为了适应在某些情况下,用户需要进入无图形化模式,此时Xorg不会启动。
对于步骤(2)中的Xorg启动异常,通常包括两种情况:一是Xorg启动失败;二是Xorg正常起来,但是DISPLAY不在:0上。
基于本发明的方法,本发明还提出了一种Linux下的启动计算机系统的系统。如图2所示,系统包含启动模块210、监控模块220以及服务重启模块230。启动模块210用于运行计算机系统的系统服务以正常启动计算机系统。监控模块220与启动模块210相连,用于在启动模块210运行系统服务的过程中监控并输出特定的系统服务的启动状态。服务重启模块230与监控模块220相连,用于在系统服务的启动状态异常时重新启动系统服务。
进一步的,监控模块220被构造成通过对服务进程的判断来监控系统服务的启动状态。具体的,监控模块220被构造成在启动模块启动系统过程中的特定的时间点开始监控。
进一步的,服务重启模块230被构造成当系统服务重新启动后仍然启动失败时再次重新启动系统服务。为了避免出现无限次重新启动的死循环,系统还包含计算机系统重启模块240以及服务重启次数计数器250。重启次数计数器250与服务重启模块230相连,用于计数同一系统服务的重启次数。计算机系统重启模块240与重启次数计数器250相连,其被构造成当同一系统服务的重启次数大于特定值时重新启动系统。
综上,根据本发明的方法及系统,可以在Linux操作系统启动过程中出现黑屏、死机等异常情况时,修复异常情况,从而增加Linux操作系统启动时的友好性,更好的保护硬件以及系统。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。
Claims (10)
1.一种Linux下的启动计算机系统的方法,其特征在于,在所述计算机系统的系统内核启动后启动系统服务以完成引导进程从而正常启动所述计算机系统,其中:
在启动所述系统服务的过程中监控特定的所述系统服务的启动状态;
当特定的所述系统服务启动成功时继续正常启动其他系统服务以正常启动所述计算机系统;
当特定的所述系统服务启动失败时重新启动启动失败的所述系统服务。
2.根据权利要求1所述的方法,其特征在于,当启动失败的所述系统服务重新启动后仍然启动失败时再次重新启动启动失败的所述系统服务。
3.根据权利要求2所述的方法,其特征在于,设定特定数值的重启次数,当针对同一所述系统服务的重新启动次数达到所述重启次数时进行所述计算机系统的重启操作。
4.根据权利要求1所述的方法,其特征在于,通过对服务进程的判断来监控所述系统服务的启动状态。
5.根据权利要求1所述的方法,其特征在于,在所述计算机系统启动过程中的特定的时间点开始监控所述系统服务的启动状态。
6.一种Linux下的启动计算机系统的系统,其特征在于,所述系统包含:
启动模块,用于运行计算机系统的系统服务以正常启动所述计算机系统;
监控模块,用于在所述启动模块运行所述系统服务的过程中监控并输出特定的所述系统服务的启动状态;
服务重启模块,用于在所述系统服务的启动状态异常时重新启动所述系统服务。
7.根据权利要求6所述的系统,其特征在于,所述服务重启模块被构造成当所述系统服务重新启动后仍然启动失败时再次重新启动所述系统服务。
8.根据权利要求7所述的系统,其特征在于,所述系统还包含计算机计算机系统重启模块以及服务重启次数计数器,其中:
所述重启次数计数器用于计数同一所述系统服务的重启次数;
所述计算机计算机系统重启模块被构造成当同一所述系统服务的重启次数大于特定值时重新启动所述计算机系统。
9.根据权利要求6所述的系统,其特征在于,所述监控模块被构造成通过对服务进程的判断来监控所述系统服务的启动状态。
10.根据权利要求6所述的系统,其特征在于,所述监控模块被构造成在所述启动模块启动所述计算机系统的过程中的特定的时间点开始监控所述系统服务的启动状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510779248.7A CN105302611B (zh) | 2015-11-13 | 2015-11-13 | 一种Linux下的启动计算机系统的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510779248.7A CN105302611B (zh) | 2015-11-13 | 2015-11-13 | 一种Linux下的启动计算机系统的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302611A true CN105302611A (zh) | 2016-02-03 |
CN105302611B CN105302611B (zh) | 2019-10-25 |
Family
ID=55199906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510779248.7A Active CN105302611B (zh) | 2015-11-13 | 2015-11-13 | 一种Linux下的启动计算机系统的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302611B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406963A (zh) * | 2016-09-29 | 2017-02-15 | 杭州迪普科技有限公司 | 一种Linux系统的初始化方法和装置 |
CN106792185A (zh) * | 2016-11-15 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 开机方法、开机装置及Android智能设备 |
CN107729744A (zh) * | 2017-09-28 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于构造Linux系统服务的启闭和安全检测的方法及系统 |
CN108989680A (zh) * | 2018-08-03 | 2018-12-11 | 珠海全志科技股份有限公司 | 摄像进程启动方法、计算机装置及计算机可读存储介质 |
CN111831373A (zh) * | 2020-06-09 | 2020-10-27 | 上海容易网电子商务股份有限公司 | 一种用于安卓互动屏应用启动状态的检测处理方法 |
CN116107410A (zh) * | 2023-04-06 | 2023-05-12 | 深圳中微电科技有限公司 | 一种Linux系统下显卡的电源管理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168563A1 (en) * | 2005-12-15 | 2007-07-19 | Jha Ashutosh K | Single logical network interface for advanced load balancing and fail-over functionality |
CN101615149A (zh) * | 2009-07-28 | 2009-12-30 | 上海北大方正科技电脑系统有限公司 | 一种系统自动恢复方法 |
CN102521099A (zh) * | 2011-11-24 | 2012-06-27 | 深圳市同洲视讯传媒有限公司 | 一种进程监控方法及进程监控系统 |
CN102810073A (zh) * | 2012-06-13 | 2012-12-05 | 天津大学 | 数据后台实时监控处理方法 |
CN103207788A (zh) * | 2012-01-13 | 2013-07-17 | 中兴通讯股份有限公司 | 一种版本启动方法和装置 |
CN103744727A (zh) * | 2014-01-16 | 2014-04-23 | Tcl集团股份有限公司 | 一种启动服务的方法、装置和智能设备 |
-
2015
- 2015-11-13 CN CN201510779248.7A patent/CN105302611B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168563A1 (en) * | 2005-12-15 | 2007-07-19 | Jha Ashutosh K | Single logical network interface for advanced load balancing and fail-over functionality |
CN101615149A (zh) * | 2009-07-28 | 2009-12-30 | 上海北大方正科技电脑系统有限公司 | 一种系统自动恢复方法 |
CN102521099A (zh) * | 2011-11-24 | 2012-06-27 | 深圳市同洲视讯传媒有限公司 | 一种进程监控方法及进程监控系统 |
CN103207788A (zh) * | 2012-01-13 | 2013-07-17 | 中兴通讯股份有限公司 | 一种版本启动方法和装置 |
CN102810073A (zh) * | 2012-06-13 | 2012-12-05 | 天津大学 | 数据后台实时监控处理方法 |
CN103744727A (zh) * | 2014-01-16 | 2014-04-23 | Tcl集团股份有限公司 | 一种启动服务的方法、装置和智能设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406963A (zh) * | 2016-09-29 | 2017-02-15 | 杭州迪普科技有限公司 | 一种Linux系统的初始化方法和装置 |
CN106406963B (zh) * | 2016-09-29 | 2020-09-08 | 杭州迪普科技股份有限公司 | 一种Linux系统的初始化方法和装置 |
CN106792185A (zh) * | 2016-11-15 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 开机方法、开机装置及Android智能设备 |
CN107729744A (zh) * | 2017-09-28 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于构造Linux系统服务的启闭和安全检测的方法及系统 |
CN108989680A (zh) * | 2018-08-03 | 2018-12-11 | 珠海全志科技股份有限公司 | 摄像进程启动方法、计算机装置及计算机可读存储介质 |
CN108989680B (zh) * | 2018-08-03 | 2020-08-07 | 珠海全志科技股份有限公司 | 摄像进程启动方法、计算机装置及计算机可读存储介质 |
CN111831373A (zh) * | 2020-06-09 | 2020-10-27 | 上海容易网电子商务股份有限公司 | 一种用于安卓互动屏应用启动状态的检测处理方法 |
CN116107410A (zh) * | 2023-04-06 | 2023-05-12 | 深圳中微电科技有限公司 | 一种Linux系统下显卡的电源管理方法及系统 |
CN116107410B (zh) * | 2023-04-06 | 2023-06-30 | 深圳中微电科技有限公司 | 一种Linux系统下显卡的电源管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105302611B (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302611A (zh) | 一种Linux下的启动计算机系统的方法及系统 | |
JP6530774B2 (ja) | ハードウェア障害回復システム | |
AU2013207906B2 (en) | Fault tolerance for complex distributed computing operations | |
US9858098B2 (en) | Hypervisor modification of system tables | |
CN103885847A (zh) | 一种基于嵌入式系统的喂狗方法及装置 | |
KR20070008668A (ko) | 가상 머신 컴퓨터 프로그램의 동적 이동 | |
CN102693136A (zh) | 计算机的快速启动方法、快速启动系统及启动系统 | |
CN104615472A (zh) | 一种防止在线刷新bios+me fw失败的方法 | |
US11662803B2 (en) | Control method, apparatus, and electronic device | |
CN110109782B (zh) | 一种故障PCIe设备的更换方法、装置及系统 | |
CN102025776A (zh) | 一种容灾控制方法、装置及系统 | |
CN102646066B (zh) | 一种开机时间的获取方法及装置 | |
CN108268302B (zh) | 实现设备启动的方法和装置 | |
CN102891762B (zh) | 连续处理网络数据的系统及方法 | |
JP6028657B2 (ja) | 検証プログラム、検証方法および検証装置 | |
CN103873516A (zh) | 提高云计算资源池中物理服务器使用率的ha方法和系统 | |
US8656149B2 (en) | Rapid activation of service management processor subsystem for server device | |
CN103092710A (zh) | 云计算操作系统中一种高可用虚拟机运行方法 | |
CN114860322A (zh) | 一种基板管理控制器、控制方法及电子设备 | |
US11392423B2 (en) | Method for running a quorum-based system by dynamically managing the quorum | |
US9772869B2 (en) | System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI) | |
CN113626147A (zh) | 基于虚拟化技术的海洋平台计算机控制方法及系统 | |
TWI554876B (zh) | 節點置換處理方法與使用其之伺服器系統 | |
CN110865873A (zh) | 一种虚拟机资源动态停机及恢复方法 | |
US9690596B1 (en) | Firmware based runtime operating system switch |
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 |