CN105302611A - 一种Linux下的启动计算机***的方法及*** - Google Patents

一种Linux下的启动计算机***的方法及*** Download PDF

Info

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
Application number
CN201510779248.7A
Other languages
English (en)
Other versions
CN105302611B (zh
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.)
China Standard Software Co Ltd
Original Assignee
China Standard Software Co Ltd
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 China Standard Software Co Ltd filed Critical China Standard Software Co Ltd
Priority to CN201510779248.7A priority Critical patent/CN105302611B/zh
Publication of CN105302611A publication Critical patent/CN105302611A/zh
Application granted granted Critical
Publication of CN105302611B publication Critical patent/CN105302611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

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

Description

一种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文件的编写后,使用命令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所述的***,其特征在于,所述监控模块被构造成在所述启动模块启动所述计算机***的过程中的特定的时间点开始监控所述***服务的启动状态。
CN201510779248.7A 2015-11-13 2015-11-13 一种Linux下的启动计算机***的方法及*** Active CN105302611B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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集团股份有限公司 一种启动服务的方法、装置和智能设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) ハードウェア障害回復システム
EP2802990B1 (en) Fault tolerance for complex distributed computing operations
US20050251802A1 (en) Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US9858098B2 (en) Hypervisor modification of system tables
US11662803B2 (en) Control method, apparatus, and electronic device
CN102693136A (zh) 计算机的快速启动方法、快速启动***及启动***
CN104461762A (zh) 一种设备死机后自动重启动方法
CN104615472A (zh) 一种防止在线刷新bios+me fw失败的方法
CN106201690A (zh) 应用运行控制方法及装置
CN110109782B (zh) 一种故障PCIe设备的更换方法、装置及***
CN102025776A (zh) 一种容灾控制方法、装置及***
CN102646066B (zh) 一种开机时间的获取方法及装置
CN108268302B (zh) 实现设备启动的方法和装置
JP2014194665A (ja) 検証プログラム、検証方法および検証装置
CN103902400A (zh) 超频设定***及其超频设定方法
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) 一种虚拟机资源动态停机及恢复方法

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