一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于双系统的系统关闭方法、设备及存储介质与流程

2022-03-19 12:32:27 来源:中国专利 TAG:


1.本技术涉及终端技术,尤其涉及一种基于双系统的系统关闭方法、设备及存储介质。


背景技术:

2.在电子设备中可以设置双系统,在需要使用双系统时,可以选择开启双系统;在仅需要使用其中一个系统的时候,可以选择关闭双系统中的一个系统。
3.现有技术中,为双系统中每一个系统配置了各自的容器;当需要关闭其中一个系统的时候,通过rootns域发起关闭指令(例如,关闭指令为lxc-stop指令),进而去直接关闭系统所对应的容器;由于容器被关闭,系统就可以被关闭。
4.然而现有技术中,上述过程是直接关闭容器,这一动作会导致系统中一些正在运行的程序或数据不能被保存,会导致数据被损坏或不能被保存;并且正在访问磁盘的操作会直接终止,引起磁盘异常,延长下次开机时间。此外,两容器共用的硬件设备会因为在需要关闭的系统中未正常关闭而使得未关闭的系统中硬件无法正常使用(例如,共用的硬件设备包括摄像头模组硬件camera硬件等)。


技术实现要素:

5.本技术提供一种基于双系统的系统关闭方法、设备及存储介质,用以解决在关闭系统时数据被损坏或不能被保存、引起磁盘异常的问题。
6.第一方面,本技术提供一种基于双系统的系统关闭方法,应用于电子设备所述电子设备中运行有内核、根命名空间rootns域、第一系统和第二系统;所述方法包括:
7.所述内核获取关闭指令,其中,所述系统关闭指示中包括待关闭系统的标识,并将所述关闭指令发送给所述rootns域;
8.所述rootns域将属性值与待关闭系统的标识相关联,并向所述内核发送指示信息,所述指示信息中包括与所述待关闭系统的标识关联的属性值;
9.所述第一系统在监听到与所述属性值关联的待关闭系统的标识为所述第一系统的标识时,修改init进程,以使所述init进程停止所述第一系统的数据处理过程并保存数据之后关闭所述第一系统;
10.所述第二系统在监听到与所述属性值关联的待关闭系统的标识为所述第二系统的标识时,修改init进程,以使所述init进程停止所述第二系统的数据处理过程并保存数据之后关闭所述第二系统。
11.在所述第一系统修改init进程之前,还包括:
12.所述第一系统根据与属性值关联的待关闭系统的标识,修改所述第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括所述待关闭系统的标识;
13.在所述第二系统修改init进程之前,还包括:
14.所述第二系统根据与属性值关联的待关闭系统的标识,修改所述第二系统中的第
二预设属性信息,其中,修改后的第二预设属性信息中包括所述待关闭系统的标识。
15.若所述第二系统在监听到与所述属性值关联的待关闭系统的标识为所述第二系统的标识时,所述方法包括:
16.所述第一系统根据所述第二系统的标识,修改所述第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括所述第二系统的标识。
17.若所述第一系统在监听到与所述属性值关联的待关闭系统的标识为所述第一系统的标识时,所述方法包括:
18.所述第二系统根据所述第一系统的标识,修改所述第二系统中的第二预设属性信息,其中,修改后的第二预设属性信息中包括所述第一系统的标识。
19.在所述第一系统在监听到与所述属性值关联的待关闭系统的标识为所述第一系统的标识时,修改init进程,以使所述init进程停止所述第一系统的数据处理过程并保存数据之后关闭所述第一系统之前,所述方法还包括:
20.所述rootns域通过所述内核接收到所述第一系统反馈的第三预设属性信息,其中,所述第三预设属性信息表征所述第一系统将被关闭;
21.所述rootns域向所述内核发送第一关闭请求,并接收所述内核反馈的第一关闭命令;
22.所述方法还包括:所述rootns域根据所述第一关闭命令在预设时间之后关闭所述第一系统对应的容器。
23.在所述第二系统在监听到与所述属性值关联的待关闭系统的标识为所述第二系统的标识时,修改init进程,以使所述init进程停止所述第二系统的数据处理过程并保存数据之后关闭所述第二系统之前,还包括:
24.所述rootns域通过所述内核接收到所述第二系统反馈的第四预设属性信息,其中,所述第四预设属性信息表征所述第二系统将被关闭;
25.所述rootns域向所述内核发送第二关闭请求,并接收所述内核反馈的第二关闭命令;
26.所述方法还包括:所述rootns域根据所述第二关闭命令在预设时间之后关闭所述第二系统对应的容器。
27.所述rootns域将属性值与待关闭系统的标识相关联,包括:
28.所述rootns域将所述属性值修改为所述待关闭系统的标识。
29.所述方法,还包括:
30.所述内核获取开启指令,其中,所述系统关闭指示中包括待开启系统的标识,并将所述开启指令发送给所述rootns域;
31.所述rootns域调取开启命令,其中,所述开启命令用于指示开启与所述待开启系统的标识对应的容器。
32.第二方面,本技术提供一种电子设备,所述电子设备中运行有内核、根命名空间rootns域、第一系统和第二系统;所述电子设备包括:
33.所述内核,用于获取关闭指令,其中,所述系统关闭指示中包括待关闭系统的标识,并将所述关闭指令发送给所述rootns域;
34.所述rootns域,用于将属性值与待关闭系统的标识相关联,并向所述内核发送指
示信息,所述指示信息中包括与所述待关闭系统的标识关联的属性值;
35.所述第一系统,用于在监听到与所述属性值关联的待关闭系统的标识为所述第一系统的标识时,修改init进程,以使所述init进程停止所述第一系统的数据处理过程并保存数据之后关闭所述第一系统;
36.所述第二系统,用于在监听到与所述属性值关联的待关闭系统的标识为所述第二系统的标识时,修改init进程,以使所述init进程停止所述第二系统的数据处理过程并保存数据之后关闭所述第二系统。
37.所述第一系统,还用于在修改init进程之前,根据与属性值关联的待关闭系统的标识,修改所述第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括所述待关闭系统的标识;
38.所述第二系统,还用于修改init进程之前,根据与属性值关联的待关闭系统的标识,修改所述第二系统中的第二预设属性信息,其中,修改后的第二预设属性信息中包括所述待关闭系统的标识。
39.若所述第二系统在监听到与所述属性值关联的待关闭系统的标识为所述第二系统的标识时,所述第一系统,还用于:
40.根据所述第二系统的标识,修改所述第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括所述第二系统的标识。
41.若所述第一系统在监听到与所述属性值关联的待关闭系统的标识为所述第一系统的标识时,所述第二系统,还用于:
42.根据所述第一系统的标识,修改所述第二系统中的第二预设属性信息,其中,修改后的第二预设属性信息中包括所述第一系统的标识。
43.所述rootns域,还用于:在所述第一系统在监听到与所述属性值关联的待关闭系统的标识为所述第一系统的标识时,修改init进程,以使所述init进程停止所述第一系统的数据处理过程并保存数据之后关闭所述第一系统之前,通过所述内核接收到所述第一系统反馈的第三预设属性信息,其中,所述第三预设属性信息表征所述第一系统将被关闭;并向所述内核发送第一关闭请求,并接收所述内核反馈的第一关闭命令;
44.所述rootns域,还用于根据所述第一关闭命令在预设时间之后关闭所述第一系统对应的容器。
45.所述rootns域,还用于:在所述第二系统在监听到与所述属性值关联的待关闭系统的标识为所述第二系统的标识时,修改init进程,以使所述init进程停止所述第二系统的数据处理过程并保存数据之后关闭所述第二系统之前,通过所述内核接收到所述第二系统反馈的第四预设属性信息,其中,所述第四预设属性信息表征所述第二系统将被关闭;并向所述内核发送第二关闭请求,并接收所述内核反馈的第二关闭命令;
46.所述rootns域,还用于根据所述第二关闭命令在预设时间之后关闭所述第二系统对应的容器。
47.所述rootns域在将属性值与待关闭系统的标识相关联时,具体用于:
48.所述rootns域将所述属性值修改为所述待关闭系统的标识。
49.所述内核,还用于获取开启指令,其中,所述系统关闭指示中包括待开启系统的标识,并将所述开启指令发送给所述rootns域;
50.所述rootns域,还用于调取开启命令,其中,所述开启命令用于指示开启与所述待开启系统的标识对应的容器。
51.第三方面,本技术提供一种电子设备,包括:处理器和存储器;
52.其中,所述存储器存储有可被所述处理器执行的指令,所述指令被所述处理器执行时,使所述处理器执行第一方面的任一项提供的方法。
53.第四方面,本技术一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面的任一项提供的方法。
54.第五方面,本技术提供了一种处理芯片,所述处理芯片包括如第三方面提供的电子设备。
55.本技术提供的基于双系统的系统关闭方法、设备及存储介质,通过将系统的属性值与与待关闭系统的标识相关联,使得待关闭的系统在监听到待关闭系统的标识为本系统的标识时,修改init进程,以使init进程停止系统的数据处理过程并保存数据之后关闭系统。避免了系统中的数据丢失。此外硬件设备依次释放内核中占有的内存之后关闭待关闭的系统,磁盘不会出现因突然停止访问而造成磁盘异常,避免了延长下次开机时间的现象。
附图说明
56.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
57.图1为本技术实施例提供的一种系统关闭方法的交互图;
58.图2为本技术实施例提供的一种基于双系统的系统关闭方法的流程示意图;
59.图3为本技术实施例提供的另一种基于双系统的系统关闭方法的流程示意图;
60.图4为本技术实施例提供的一种电子设备的结构示意图;
61.图5为本技术实施例提供的另一种电子设备的结构示意图。
62.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
63.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
64.在电子设备中可以安装双系统,系统分别处于各自的容器之中,两个容器相互独立,用户可以根据自身的喜好,在不同的系统中进行不同的操作。当需要使用双系统时,可以选择开启双系统;在仅需要使用其中一个系统时,或者需要使用的系统要占用更多的内存空间时,可以选择关闭双系统中的另一个系统,以保证需要使用的系统的运行更加流畅。当需要再次使用已关闭的系统时,可以再次启动已关闭的系统。
65.一个示例中,电子设备为双系统中的每一个系统配置了各自的容器;图1为本实施
例提供的一种系统关闭方法的交互图。如图1所示,当需要关闭其中一个系统的时候,通过rootns域发起关闭指令(例如,关闭指令为lxc-stop指令),进而去直接关闭系统所对应的容器(其中,容器1为第一系统所对应的容器,容器2为第二系统所对应的容器);由于容器被关闭,处于容器中的系统就直接被关闭。例如,如图1所示,rootns域向与需要关闭的第一系统对应的容器1发送lxc-stop指令,进而容器1根据lxc-stop指令进行关闭,处于容器1中的第一系统由于所对应的容器1的直接关闭而关闭。
66.但是,在上述过程中是直接关闭需要关闭的系统所对应的容器使得容器中的系统被关闭,这一动作会导致系统中一些正在运行的程序或数据不能被保存,会导致数据被损坏或不能被保存,进而造成数据丢失;并且系统中正在访问磁盘的操作会直接终止,造成磁盘异常,延长下次开机时间。此外,双系统中共用的硬件设备(例如camera硬件)会因为直接关闭容器的操作无法在未关闭的系统中正常使用。
67.本技术提供的基于双系统的系统关闭方法、设备及存储介质,旨在解决现有技术的如上技术问题。
68.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
69.图2为本技术实施例提供的一种基于双系统的系统关闭方法的流程示意图,该方法应用于电子设备,电子设备中运行有内核、根命名空间(rootns)域、第一系统和第二系统。如图2所示,该方法包括:
70.101、内核获取关闭指令,其中,系统关闭指示中包括待关闭系统的标识,并将关闭指令发送给rootns域。
71.示例性地,在电子设备中安装有两个android系统,分别为第一系统和第二系统;并且,在电子设备中运行有内核和rootns域。其中,rootns域、第一系统、第二系统可以通过内核相互监听彼此。当用户需要关闭某一暂时不需要的系统时,可以通过当前使用中的系统中的关闭系统按钮向内核发送系统关闭指示,系统关闭指示中包含待关闭系统的标识。内核获取到关闭指令后,将关闭指令发送给rootns域。举例来说,当需要关闭电子设备中的第一系统时,在电子设备第二系统的操作界面上会有“关闭后台系统”的按钮。用户在点击“关闭后台系统”的按钮后,会向内核发送关闭指令。关闭指令中包括关机指示(shutdown)以及第一系统的属性标识(vp1)。内核接收到关闭指令之后会将关闭指示发送给rootns域。
72.举例来说,当需要关闭电子设备中的第二系统时,在电子设备第一系统的操作界面上会有“关闭后台系统”的按钮。用户在点击“关闭后台系统”的按钮后,会向内核发送关闭指令。关闭指令中包括关机指示(shutdown)以及第二系统的属性标识(vp2)。内核接收到关闭指令之后会将关闭指示发送给rootns域。
73.102、rootns域将属性值与待关闭系统的标识相关联,并向内核发送指示信息,指示信息中包括与待关闭系统的标识关联的属性值。
74.示例性地,当需要关闭电子设备中的第一系统时,rootns域接收到内核发送的关闭指令之后,会将rootns域中的属性值与关闭指令中待关闭的系统中的标识相关联,即在rootns域的celld中的sys.powerctl属性值与第一系统的属性值(vp1)相关联,并将关联后的指示信息发送给内核。其中指示信息包含有待关闭的系统标识的属性值(vp1)。
75.示例性地,当需要关闭电子设备中的第二系统时,rootns域接收到内核发送的关闭指令之后,会将rootns域中的属性值与关闭指令中待关闭的系统中的标识相关联,即在rootns域的celld中的sys.powerctl属性值与第二系统的属性值(vp2)相关联,并将关联后的指示信息发送给内核。其中指示信息包含有带关闭的系统标识的属性值(vp2)。
76.103、第一系统在监听到与属性值关联的待关闭系统的标识为第一系统的标识时,修改init进程,以使init进程停止第一系统的数据处理过程并保存数据之后关闭第一系统。
77.示例性地,当需要关闭电子设备中的第一系统时,第一系统通过poll机制去监听内核中的变化,等待内核中有可读事件的发生,其中可读事件包括rootns域发送给内核的指示信息,指示信息中包括待关闭的系统标识的属性值。当rootns域将关联后的指示信息发送给内核之后,第一系统就会监听到内核中rootns发送的指示信息,第一系统中的poll机制会从内核中读取到rootns发送的指示信息。若指示信息中的待关闭系统的标识为第一系统的标识时(vp1),第一系统就去修改init进程。第一系统通过执行修改后的init进程,依次保存第一系统中的数据处理过程,依次释放硬件在内核上的内存,并在保存数据之后关闭第一系统。
78.104、第二系统在监听到与属性值关联的待关闭系统的标识为第二系统的标识时,修改init进程,以使init进程停止第二系统的数据处理过程并保存数据之后关闭第二系统。
79.示例性地,当需要关闭电子设备中的第二系统时,第二系统通过poll机制去监听内核中的变化,等待内核中有可读事件的发生,其中可读事件包括rootns域发送给内核的指示信息,指示信息中包括待关闭的系统标识的属性值。当rootns域将关联后的指示信息发送给内核之后,第二系统就会监听到内核中rootns发送的指示信息,第二系统中的poll机制会从内核中读取到rootns发送的指示信息。若指示信息中的待关闭系统的标识为第二系统的标识时(vp2),第二系统就去修改init进程。第二系统通过执行修改后的init进程,依次保存第一系统中的数据处理过程,依次释放硬件在内核上的内存,并在保存数据之后关闭第二系统。
80.本实施例,通过内核获取关闭系统的指示之后,内核将关闭系统的指令发送给rootns域,其中,关闭系统的指示和后台发送的关闭系统的指令中都包含有待关闭系统标识的属性值。rootns域在接收内核发送的关闭系统的指令之后,会将rootns域的属性值与待关闭系统的标识相关联,并向内核发送指示信息,其中指示信息中包括与待关闭系统的标识关联的属性值。第一系统监听内核中的变化信息,在监听并读取到rootns域发送给内核的指示信息之后,若发现指示信息中待关闭系统标识为第一系统的标识时,修改init进程,以使init进程停止第一系统的数据处理过程并保存数据之后关闭第一系统,rootns域和第二系统不执行修改后的init进程。若第二系统在监听并读取到内核中的变化信息时,发现rootns域发送给内核的指示信息中待关闭系统的标识为第二系统的标识时,修改init进程,以使init进程停止第二系统的数据处理过程并保存数据之后关闭第二系统,rootns域和第一系统不执行修改后的init进程。利用上述方法关闭双系统中的系统时,待关闭的系统会执行正常的关机流程,即向待关闭的系统中广播关闭信息,系统中的数据处理过程等进程依次停止,数据依次保存,此外硬件设备依次释放内核中占有的内存之后关闭待关
闭的系统。该方法的有益效果在于可以依次停止待关闭系统中的进程,磁盘不会出现因突然停止访问而造成磁盘异常,避免了延长下次开机时间的现象。而使待关闭系统中的数据及时写入磁盘并保存下来,两系统中共用的硬件依次释放内核上占用的内存,可以使硬件在待关闭的系统中正常关闭,从而使得未关闭系统可以对两系统共用的硬件正常使用。
81.图3为本技术实施例提供的另一种基于双系统的系统关闭方法的流程示意图,该方法应用于电子设备,电子设备中运行有内核、根命名空间(rootns)域、第一系统和第二系统。如图3所示,该方法包括:
82.201、内核获取关闭指令,其中,系统关闭指示中包括待关闭系统的标识,并将关闭指令发送给rootns域。
83.示例性地,在电子设备中安装有双系统,分别为第一系统和第二系统;并且,在电子设备中运行有内核和rootns域。
84.本步骤可以参见图2的步骤101,不再赘述。
85.202、rootns域将属性值修改为待关闭系统的标识,并向内核发送指示信息,指示信息中包括与待关闭系统的标识关联的属性值。
86.示例性地,在安装有双系统的电子设备中,若需要关闭电子设备中的第一系统时,rootns域接收到内核发送的关闭指令之后,会将rootns域中的属性值修改为待关闭系统的标识,即在rootns域的celld中将sys.powerctl属性值设置为(shutdown,vp1),并将修改后的sys.powerctl属性值的指示信息发送给内核。其中指示信息包含有待关闭的系统标识关联的属性值(vp1)。
87.示例性地,在安装有双系统的电子设备中,若需要关闭电子设备中的第二系统时,rootns域接收到内核发送的关闭指令之后,会将rootns域中的属性值修改为待关闭系统的标识,即在rootns域的celld中将sys.powerctl属性值设置为(shutdown,vp2),并将修改后的sys.powerctl属性值的指示信息发送给内核。其中指示信息包含有带关闭的系统标识关联的属性值(vp2)。
88.203a、第一系统在监听到与属性值关联的待关闭系统的标识为第一系统的标识时,第一系统根据与属性值关联的待关闭系统的标识,修改第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括待关闭系统的标识。
89.示例性地,第一系统可以通过poll机制监听内核中存储的信息变化。当rootns域将属性修改信息的指示信息发送给内核时(其中指示信息中包括与待关闭系统标识关联的属性值信息),第一系统中的poll机制监听到内核中rootns域发送的指示信息之后,第一系统会通过poll机制读取出rootns域发给内核的指示信息,此时若待关闭的系统的标识为第一系统的标识vp1时,根据读取到的指示信息对第一系统的第一预设属性信息进行修改,其中将第一系统的第一预设属性信息修改为(shutdown,vp1)。
90.204a、第二系统根据第一系统的标识,修改第二系统中的第二预设属性信息,其中,修改后的第二预设属性信息中包括第一系统的标识。
91.示例性地,第二系统可以通过poll机制监听内核中存储的信息变化。当rootns域将属性修改信息的指示信息发送给内核时(其中指示信息中包括与待关闭系统标识关联的属性值信息),第二系统中的poll机制监听到内核中rootns域发送的指示信息之后,第二系统会通过poll机制读取出rootns域发给内核的指示信息,此时若待关闭的系统的标识为第
一系统的标识vp1时,根据读取到的指示信息将第二系统的第二预设属性信息进行修改,即将第二系统的第二预设属性信息修改为(shutdown,vp1)。
92.205a、rootns域通过内核接收到第一系统反馈的第三预设属性信息,其中,第三预设属性信息表征第一系统将被关闭;rootns域向内核发送第一关闭请求,并接收内核反馈的第一关闭命令。
93.示例性地,在第一系统依照内核中的指示信息修改第一系统的属性之后,第一系统会对第一系统中的第三预设属性信息进行修改(其中第三预设属性信息表征第一系统将被关闭),即“sys.vp1.shutdown”的属性值设置为“ready”。第三预设属性信息修改之后,第一系统会将第三预设属性信息发送给内核;rootns域中的poll机制监听到内核中第一系统所发送的第三预设属性信息后,从内核中获取到第三预设属性信息所表征的属性值(“sys.vp1.shutdown=ready”)。rootns域中的trigger在接收到“sys.vp1.shutdown=ready”这一属性之后,会向内核中发送第一关闭请求,其中第一关闭请求表征关闭第一系统所处的容器1的请求。内核在接收到第一关闭请求之后,会将第一关闭命令发送给rootns域中的celld服务,其中第一关闭命令表征关闭第一系统所处的容器1的命令。
94.206a、第一系统修改init进程,以使init进程停止第一系统的数据处理过程并保存数据之后关闭第一系统。
95.示例性地,在第一系统依照内核中的指示信息修改第一系统的属性之后,会对init进程进行修改。第一系统通过执行修改后的init进程,将第一系统中的进程依次关闭,并且将数据写入磁盘中依次保存下来之后关闭第一系统。
96.步骤206a与步骤205a的执行次序不做限制。
97.207a、rootns域根据第一关闭命令在预设时间之后关闭第一系统对应的容器。
98.示例性地,rootns域的celld服务接收到内核所发送的第一关闭命令之后,待等待设定好的预设时间之后,rootns域的celld服务调用指令lxc-stop去关闭第一系统所处的容器1。其中,等待设定好的预设时间可以确保在第一系统彻底关闭之后,第一系统所处的容器1才去关闭。
99.203b、第二系统在监听到与属性值关联的待关闭系统的标识为第二系统的标识时,第二系统根据与属性值关联的待关闭系统的标识,修改第二系统中的第二预设属性信息,其中,修改后的第二预设属性信息中包括待关闭系统的标识。
100.示例性地,第二系统可以通过poll机制监听内核中存储的信息变化。当rootns域将属性修改信息的指示信息发送给内核时(其中指示信息中包括与待关闭系统标识关联的属性值信息),第二系统中的poll机制会监听到内核中rootns域发送的指示信息之后,第二系统会通过poll机制读取出rootns域发给内核的指示信息,此时若待关闭的系统的标识为第二系统的标识vp2时,根据读取到的指示信息对第二系统的第二预设属性信息进行修改,其中将第二系统的第二预设属性信息修改为(shutdown,vp2)。
101.204b、第一系统根据第二系统的标识,修改第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括第二系统的标识。
102.示例性地,第一系统可以通过poll机制监听内核中存储的信息变化。当rootns域将属性修改信息的指示信息发送给内核时(其中指示信息中包括与待关闭系统标识关联的属性值信息),第一系统中的poll机制监听到内核中rootns域发送的指示信息之后,第一系
统会通过poll机制读取出rootns域发给内核的指示信息,此时若待关闭的系统的标识为第二系统的标识vp2时,根据读取到的指示信息将第一系统的第一预设属性信息进行修改,即将第一系统的第一预设属性信息修改为(shutdown,vp2)。
103.205b、rootns域通过内核接收到第二系统反馈的第四预设属性信息,其中,第四预设属性信息表征第二系统将被关闭;rootns域向内核发送第二关闭请求,并接收内核反馈的第二关闭命令;
104.示例性地,在第二系统依照内核中的指示信息修改第二系统的属性之后,第二系统会对第二系统中的第四预设属性信息进行修改(其中第四预设属性信息表征第二系统将被关闭),即“sys.vp2.shutdown”的属性值设置为“ready”。第四预设属性信息修改之后,第二系统会将第四预设属性信息发送给内核;rootns域中的poll机制监听到内核中第二系统所发送的第四预设属性信息后,从内核中获取到第四预设属性信息所表征的属性值(“sys.vp2.shutdown=ready”)。rootns域中的trigger在接收到“sys.vp2.shutdown=ready”这一属性之后,会向内核中发送第二关闭请求,其中第二关闭请求表征关闭第二系统所处的容器2的请求。内核在接收到第二关闭请求之后,会将第二关闭命令发送给rootns域中的celld服务,其中第二关闭命令表征关闭第二系统所处的容器2的命令。
105.206b、第二系统修改init进程,以使init进程停止第二系统的数据处理过程并保存数据之后关闭第二系统。
106.示例性地,在第二系统依照内核中的指示信息修改第二系统的属性之后,会对init进程进行修改。第二系统通过执行修改后的init进程,将第二系统中的进程依次关闭,并且将数据写入磁盘中依次保存下来之后关闭第二系统。
107.步骤206b与步骤205b的执行次序不做限制。
108.207b、rootns域根据第二关闭命令在预设时间之后关闭第二系统对应的容器。
109.示例性地,rootns域的celld服务接收到内核所发送的第二关闭命令之后,待等待设定好的预设时间之后,rootns域的celld服务调用指令lxc-stop去关闭第二系统所处的容器2。其中,等待设定好的预设时间可以确保在第二系统彻底关闭之后,第二系统所处的容器2才去关闭。
110.208、内核获取开启指令,其中,系统开启指示中包括待开启系统的标识,并将开启指令发送给rootns域。
111.示例性地,在步骤207a或者步骤207b之后,若需要重新开启已关闭的系统,则可以通过未关闭系统中的“开启另一系统”的按钮,向内核发送开启系统的指令,内核接收到开启指令之后,会向rootns域发送开启指令,开启指令中包括有待开启系统的标识(其中第一系统的标识为vp1,第二系统的标识为vp2)。
112.209、rootns域调取开启命令,其中,开启命令用于指示开启与待开启系统的标识对应的容器。
113.示例性地,在步骤208之后,rootns域中的celld服务会调取开启容器的指令lxc-start去开启待开启系统所处的容器。
114.本实施例,在上述实施例的基础上,内核会将获取到的系统的关闭指示发送给rootns域,其中,关闭系统的指示包含有待关闭系统标识的属性值。rootns域接收到关闭指令之后,会将rootns域中的属性值修改为与待关闭系统标识相关的属性值,并将修改后的
sys.powerctl属性值的指示信息发送给内核。第一系统和第二系统在各自的系统中通过poll机制监听内核中的变化信息,当监听到rootns域发送的携带有待关闭系统标识的指示信息之后,会通过poll机制将内核中的指示信息读取出来,第一系统和第二系统会根据所读取的指示信息,分别对第一预设属性信息与第二预设属性信息进行修改,修改后的第一预设属性信息与第二预设属性信息中包含有待关闭系统的标识。若系统匹配到待关闭系统的标识为本系统的标识时,则对init进程进行修改,执行修改后的initi进程,开始依次停止系统中的进程保存数据,同时向内核发送将表征将被关机的指示的属性信息;rootns域从把内核接收到属性信息之后,向内核发送关闭待关闭系统所处容器的请求,rootns域在接收到关闭容器的指令后,在预设时间之后(即要保证系统彻底关闭之后),celld服务调用lxc-stop关闭已关闭系统所处的容器。若系统匹配到待关闭系统的标识并非本系统的标识时,继续运行该系统。当需要打开之前被关闭的系统时,可以通过内核获取开启指令,并将开启指令发送给rootns域。rootns域调取开启命令,开启待开启系统所处的容器。通过上述方法对双系统中的系统执行关机操作,可以保证待关闭的系统中的进程依次关闭,不会造成磁盘的异常,为另一个系统的运行提供内存空间。同时,数据会依次写入磁盘并保存下来,保证了数据不会因突然关机而丢失。此外,系统中的硬件在关机时也会依次释放内核上的内存,不会影响未关闭系统对该硬件的正常使用。再者,关闭双系统中的一个系统之后关闭已关闭系统所处的容器,可以进一步释放容器占用的内存,为另一个系统提供更多的内存空间,保证未关闭的系统运行更加流畅。
115.图4为本技术实施例提供的一种电子设备的结构示意图,如图4所示,该电子设备中运行有内核41、根命名空间rootns域42、第一系统43和第二系统44;该电子设备包括:
116.内核41,用于获取关闭指令,其中,系统关闭指示中包括待关闭系统的标识,并将关闭指令发送给rootns域;
117.rootns域42,用于将属性值与待关闭系统的标识相关联,并向内核发送指示信息,指示信息中包括与待关闭系统的标识关联的属性值;
118.第一系统43,用于在监听到与属性值关联的待关闭系统的标识为第一系统的标识时,修改init进程,以使init进程停止第一系统的数据处理过程并保存数据之后关闭第一系统;
119.第二系统44,用于在监听到与属性值关联的待关闭系统的标识为第二系统的标识时,修改init进程,以使init进程停止第二系统的数据处理过程并保存数据之后关闭第二系统。
120.一个示例中,第一系统43,还用于在修改init进程之前,根据与属性值关联的待关闭系统的标识,修改第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括待关闭系统的标识。
121.第二系统44,还用于修改init进程之前,根据与属性值关联的待关闭系统的标识,修改第二系统中的第二预设属性信息,其中,修改后的第二预设属性信息中包括待关闭系统的标识。
122.一个示例中,若第二系统在监听到与属性值关联的待关闭系统的标识为第二系统的标识时,第一系统43,还用于:根据第二系统的标识,修改第一系统中的第一预设属性信息,其中,修改后的第一预设属性信息中包括第二系统的标识。
123.一个示例中,若第一系统在监听到与属性值关联的待关闭系统的标识为第一系统的标识时,第二系统44,还用于:根据第一系统的标识,修改第二系统中的第二预设属性信息,其中,修改后的第二预设属性信息中包括第一系统的标识。
124.一个示例中,rootns域42,还用于:在第一系统在监听到与属性值关联的待关闭系统的标识为第一系统的标识时,修改init进程,以使init进程停止第一系统的数据处理过程并保存数据之后关闭第一系统之前,通过内核接收到第一系统反馈的第三预设属性信息,其中,第三预设属性信息表征第一系统将被关闭;并向内核发送第一关闭请求,并接收内核反馈的第一关闭命令。
125.rootns域42,还用于根据第一关闭命令在预设时间之后关闭第一系统对应的容器。
126.一个示例中,rootns域42,还用于:在第二系统在监听到与属性值关联的待关闭系统的标识为第二系统的标识时,修改init进程,以使init进程停止第二系统的数据处理过程并保存数据之后关闭第二系统之前,通过内核接收到第二系统反馈的第四预设属性信息,其中,第四预设属性信息表征第二系统将被关闭;并向内核发送第二关闭请求,并接收内核反馈的第二关闭命令。
127.rootns域42,还用于根据第二关闭命令在预设时间之后关闭第二系统对应的容器。
128.一个示例中,rootns域42在将属性值与待关闭系统的标识相关联时,具体用于:将属性值修改为待关闭系统的标识。
129.一个示例中,内核41,还用于获取开启指令,其中,系统关闭指示中包括待开启系统的标识,并将开启指令发送给rootns域。
130.rootns域42,还用于调取开启命令,其中,开启命令用于指示开启与待开启系统的标识对应的容器。
131.本实施例提供的电子设备,用于实现上述方法提供的技术方案,其实现原理和技术效果类似,不再赘述。
132.图5为本技术实施例提供的另一种电子设备的结构示意图,如图5所示,该电子设备包括:
133.处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(communication interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器294中的逻辑指令,以执行上述实施例的方法。
134.此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
135.存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本技术实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
136.存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。
此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
137.本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述实施例提供的方法。
138.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
139.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献