CN109240809B - 进程维护管理方法、容器维护方法、装置和操作系统 - Google Patents
进程维护管理方法、容器维护方法、装置和操作系统 Download PDFInfo
- Publication number
- CN109240809B CN109240809B CN201710560644.XA CN201710560644A CN109240809B CN 109240809 B CN109240809 B CN 109240809B CN 201710560644 A CN201710560644 A CN 201710560644A CN 109240809 B CN109240809 B CN 109240809B
- Authority
- CN
- China
- Prior art keywords
- container
- pid
- daemon
- namespace
- storage space
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种进程维护管理方法、容器维护方法、装置和操作系统,该方法包括:Daemon进程创建容器进程,并在该容器进程的命名空间设置用于表示进程类型为容器进程的标识,并将该容器进程在该操作系统的内核的全局PID列表中的PID存储到指定存储空间;在该Daemon进程崩溃后,该操作系统中的init进程接管包括容器进程在内的孤儿进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;重启的Daemon进程获取该指定存储空间中的PID,并恢复重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
Description
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种进程维护管理方法、容器维护方法、装置和操作系统。
背景技术
在Linux操作系统中,每个容器(Container)进程都是Daemon进程的子进程,由Daemon进程创建;每个Container进程都具有不同的PID命名空间。通过命名空间技术,可实现容器间的进程隔离。另外,Daemon进程也会利用PID命名空间的树状结构,实现了对容器中的进程交互、监控和回收。
但是,在现有技术的方案中,一旦Daemon进程崩溃,其所创建的容器都会丢失,且容器内的正常服务都会中断,从而导致服务不可用。
如何避免Daemon进程的崩溃影响容器内服务的使用,是本申请所要解决的技术问题。
发明内容
本申请实施例的目的是提供一种进程维护管理方法、容器维护方法、装置和操作系统,能够增加操作系统的鲁棒性。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提供了一种操作系统的容器维护方法,该方法包括:
操作系统中的Daemon进程创建容器进程,并在该容器进程的命名空间设置用于表示进程类型为容器进程的标识,并将该容器进程在该操作系统的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
在该Daemon进程崩溃后,该操作系统中的init进程接管包括容器进程在内的孤儿进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;
重启的Daemon进程获取该指定存储空间中的PID,并恢复重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
第二方面,提供了一种容器维护装置,该装置包括:
容器创建模块,通过操作系统中的Daemon进程创建容器进程,并在该容器进程的命名空间中标记进程类型为容器进程,并将该容器进程在该操作系统中的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
容器接管模块,在Daemon进程崩溃后,通过该操作系统中的init进程包括容器进程在内的孤儿进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;
进程重启模块,用于在该Daemon进程崩溃后重启Daemon进程;
容器恢复模块,通过重启的Daemon进程获取该指定存储空间中的PID,并恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
第三方面,提供了一种电子设备,该装置包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
通过操作系统中的Daemon进程创建容器进程,并在该容器进程的命名空间中标记进程类型为容器进程,并将该容器进程在该操作系统中的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
在该Daemon进程崩溃后,通过该操作系统中的init进程接管成为孤儿进程的容器进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;
通过重启的Daemon进程获取该指定存储空间中的PID,并恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
第四方面,提供了一种操作系统,该操作系统包括:init进程和Daemon进程,其中,
Daemon进程创建容器进程,并在该容器进程的命名空间中标记进程类型为容器进程,并将该容器进程在该操作系统中的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
init进程在所述Daemon进程崩溃后,接管成为孤儿进程的容器进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;
Daemon进程还在重启后获取所述指定存储空间中的PID,并恢复对所述指定存储空间中的PID对应的容器进程的控制。
第五方面,提出了一种进程维护方法,包括:
创建者创建进程;
存储该进程的身份标识;
当该创建者失效后,接管者接管该进程,并确定保留该进程的资源;
当该创建者恢复后,该创建者获取该进程的身份标识,并恢复对该进程的控制。
第六方面,提出了一种进程维护装置,包括:
进程创造模块,通过创建者创建进程;
存储模块,存储该进程的身份标识;
接管模块,当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源;
恢复模块,当该创建者恢复后,通过该创建者获取该进程的身份标识,并恢复对该进程的控制。
第七方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
通过创建者创建进程;
存储该进程的身份标识;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源;
当该创建者恢复后,通过该创建者获取该进程的身份标识,并恢复对该进程的控制。
第八方面,提出了一种进程管理方法,包括:
创建者创建进程;
当该创建者失效后,接管者接管该进程,并确定保留该进程的资源。
第九方面,提出了一种进程管理装置,包括:
进程创造模块,通过创建者创建进程;
接管模块,当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源。
第十方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
通过创建者创建进程;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源。
本申请实施例的方案能够至少能够实现以下技术效果之一:
一方面,通过在创建容器进程时存储容器进程在内核的全局PID列表中的PID,并由操作系统的init进程接管Daemon进程崩溃后的容器进程且不进行资源回收,并在Daemon进程重启后根据存储的容器进程的PID恢复对容器进程的控制,从而能够实现Daemon进程崩溃后容器的可用性和可控性,从而提高操作系统的鲁棒性。
另一方面,通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者并确定保留进程的资源,然后在创建者恢复时根据存储的进程的身份标识恢复对进程的控制,从而使得进程在创建者失效后继续可用,提高了操作系统的鲁棒性。
再一方面,通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者并确定保留进程的资源,从而使得进程在创建者失效后继续可用,提高了操作系统的鲁棒性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本申请的一个实施例PID命名空间的结构示意图。
图2是本申请的一个实施例容器维护方法流程图。
图3是本申请的一个实施例容器维护方法流程图。
图4是本申请的一个实施例电子设备的结构示意图。
图5是本申请的一个实施例容器维护装置的结构示意图。
图6是本申请的一个实施例进程维护方法流程图。
图7是本申请的一个实施例电子设备的结构示意图。
图8是本申请的一个实施例进程维护装置的结构示意图。
图9是本申请的一个实施例进程管理方法流程图。
图10是本申请的一个实施例电子设备的结构示意图。
图11是本申请的一个实施例进程管理装置的结构示意图。
具体实施方式
本申请实施例提供一种容器维护方法、装置和操作系统。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都应当属于本申请保护的范围。
为了方便理解本申请实施例,首先在此介绍本申请实施例描述中会引入的几个要素。
init进程:是内核启动的第一个用户级进程。当内核启动,Linux操作系统需要通过启动init进程来完成引导进程的内核部分。当init进程开始运行后,init进程通过执行一些管理任务来结束引导进程,例如检查文件系统、清理/tmp、启动各种服务以及为每个终端和虚拟控制台启动getty等。此外,init进程还用于在启动后收集孤儿进程。当然应理解,在实际的应用中,Linux操作系统可存在init进程的多种变种形式,例如sysvinit进程等。
Daemon进程:是Linux中的守护进程。守护进程是脱离于终端并且在后台运行的进程。守护进程在执行过程中的信息不在任何终端上显示,并且守护进程也不会被任何终端所产生的终端信息所打断。在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。但是守护进程却能够突破这种限制,它从被执行开始运转,直到整个系统关闭时才退出。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被内核空间中进程号为1的进程,即init进程所收养,并由init进程对它们完成状态收集工作。
进程身份标识(Process Identity,PID):Linux中在其命名空间中唯一标识进程而分配给它的一个号码,称做进程ID号,简称PID。在使用fork或clone进行系统调用时产生的进程均会由内核在全局PID列表中分配一个新的唯一的PID值。
命名空间(Namespaces):Linux Namespaces机制提供一种资源隔离方案,为Linux操作系统层面的虚拟化机制提供支撑。在Linux中,PID、IPC、Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其它Namespace都是透明的。要创建新的Namespace,只需要在调用fork或clone时指定相应的flag。LinuxNamespaces机制为实现基于容器的虚拟化技术提供了很好的基础,Linux容器(Linuxcontainers,LXC)就是利用这一特性实现了资源的隔离,不同Container内的进程属于不同的Namespace,彼此透明,互不干扰。从Linux 2.6.24版的内核开始,Linux就支持6种不同类型的命名空间,分别为mount命名空间、UTS命名空间、IPC命名空间、用户命名空间、PID命名空间、网络命名空间。
PID命名空间:Linux内核为所有的PID命名空间维护了一个树状结构:最顶层的是系统初始化时创建的根命名空间(Root Namespace),之后再创建的新PID Namespace称之为子命名空间(Child Namespace),而原先的PID命名空间就是新创建的PID命名空间的父命名空间(Parent Namespace)。通过这种方式,系统中的PID命名空间会形成一个层级体系。在这个层级体系中,父节点可以看到子节点中的进程,并可以通过信号等方式对子节点中的进程产生影响;反过来,子节点不能看到父节点命名空间中的任何内容,也不可能通过kill或ptrace等操作影响父节点或其它命名空间中的进程。
为更方便地理解命名空间,下面以PID命名空间进行举例说明。
图1是本申请的一个实施例PID命名空间的结构示意图。如图1所示的命名空间中,父命名空间NS1衍生了两个子命名空间NS2和NS3,子命名空间NS2又衍生了子命名空间NS4。
其中,命名空间NS1是NS1中PID为1的命名空间,命名空间NS2是NS1中PID为5的命名空间,命名空间NS3是NS1中PID为8的命名空间,命名空间NS4是NS1中PID为7的命名空间。
从图1还可以看出,由于各个命名空间彼此隔离,所以每个命名空间都可以有PID号为1的进程。由于命名空间的层次性,父命名空间,知道子命名空间的存在,子命名空间的进程需要映射到父命名空间中去。如NS4中PID为1的进程映射到NS2中PID为3的进程,NS2中PID为3的进程又映射到NS1中PID为6的进程,等等。
图2是本申请的一个实施例操作系统的容器维护方法流程图。该方法可包括:
S202,操作系统中的Daemon进程创建容器进程,并在该容器进程的命名空间设置用于表示进程类型为容器进程的标识,并将该容器进程在该操作系统的内核的全局PID列表中的PID存储到指定存储空间。
应理解,在Linux系统中,创建容器,需要创建容器进程。一个容器中,可包括一个或多个容器进程。
应理解,在Linux系统中,由守护进程Daemon进程创建容器进程。所有的容器都使用Daemon所在的进程Fork出来一个子进程,也就是说,所有的容器主进程都是这个Daemon的子进程。
在本申请实施例中,操作系统的Daemon进程在创建容器进程后,可在该容器进程的命名空间设置标识,用于表示进程类型为容器进程。根据该标识,init进程可在接管孤儿进程时,能够区别容器进程与其它孤儿进程。
此外,在本申请实施例中,Daemon进程在创建容器进程后,还可将该容器进程在该操作系统的内核的全局PID列表中的PID存储到指定存储空间。应理解,任何进程在内核的全局PID列表中都有一个唯一的PID,例如,init进程的PID为1,等等。
可选地,该指定存储空间可以是操作系统内存的用户态存储空间中的指定的环境变量。
具体地,该环境变量可以是一个列表,或者是一个数组,或者是一个字符串,等等。例如,Daemon进程可以新建一个列表变量,列表中每一行的标识为容器进程的PID信息;又例如,Daemon进程可以新建一个数组变量,数组变量的每一个元素为一个容器进程的PID;又例如,Daemon进程可以新建一个字符串变量,将所有容器进程的PID以间隔符号隔开,然后整体存储到该字符串变量中,等等。
本申请实施例通过使用内存的用户态存储空间存储容器进程的PID信息,可以使得Daemon以较快的速度完成容器进程的PID的存储,提高效率。
或者,可选地,该指定存储空间可以是操作系统内存以外的本地存储设备上的指定位置。
本申请实施例通过直接使用本地存储设备的空间存储容器进程的PID信息,不需要在操作系统内存中建立新的环境变量。
可选地,Daemon进程还可将容器进程对应的创建时间、优先级信息、占用资源信息等的一种或多种存储到指定存储空间中,并与该容器进程的PID建立关联关系。该关联关系,例如,可以是以PID关联的一个列表,或者是以PID命名的一个文件,等等。当然,应理解,以PID命名的文件只能存储在操作系统内存以外的本地存储设备上的指定位置。
此外,Daemon进程还可将创建容器时所使用的命令,以及容器的镜像版本等存储到本地存储设备上。其中,该镜像版本可以唯一标识容器的内容。
S204,在该Daemon进程崩溃后,该操作系统中的init进程接管包括容器进程在内的孤儿进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源。
应理解,在Daemon进程崩溃后,容器中父进程为Daemon进程的容器进程成为孤儿进程。以图1为例,假设PID命名空间NS1中PID为1、2、3的进程为Daemon进程创建的容器进程,则当Daemon进程崩溃后,NS1中PID为1、2、3的进程就会成为孤儿进程。
一般情况下,init进程会接管孤儿进程,并回收孤儿进程的资源。
在本申请实施例中,init进程接管孤儿进程后,可根据孤儿进程的命名空间中是否设置有用于表示进程类型为容器进程的标识,确定孤儿进程中的容器进程。如果确定孤儿进程中命名空间设置有该标识,则该确定该孤儿进程为容器进程,并确定保留容器进程的资源,以保持容器进程的服务继续可用。
S206,重启的Daemon进程获取该指定存储空间中的PID,并恢复重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
重启的Daemon进程可读取该指定存储空间中的PID,并根据PID,轮询PID对应的容器进程的状态,恢复重启的Daemon进程对容器进程的控制。
应理解,由于Daemon是使用root权限创建的,Daemon进程只需要获得容器进程的PID,就可以对该容器进程进行start、stop、kill等操作,从而恢复对于容器进程的控制权。
可选地,作为一个实施例,步骤S206具体实现为:该重启的Daemon进程按照PID从小到大的顺序,恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
应理解,在Linux中,内核的全局PID列表中PID的值是按照创建时间逐渐增大的。因此,通过按照PID从小到大的顺序恢复对容器进程的控制,就等价于按照容器进程的创建时间恢复对容器进程的控制。
可选地,作为另一个实施例,如果在步骤S202中,该Daemon进程将该容器进程在该全局PID列表中的PID及该容器进程的优先级信息存储到该指定存储空间,则步骤S206具体可实现为:该重启的Daemon进程按照容器进程的优先级,恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。本申请实施例通过根据优先级恢复容器进程的控制,可以使得优先级最高的容器进程最先恢复控制。
可选地,作为另一个实施例,如果在步骤S202中,该Daemon进程将该容器进程在该全局PID列表中的PID及该容器进程所占用的资源信息存储到该指定存储空间,则步骤S206具体可实现为:该重启的Daemon进程按照容器进程所占用的资源从多到少或从少到多的顺序,恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。本申请实施例通过根据容器进程占用的资源恢复容器进程的控制,可以使得占用资源最少或占用资源最多的容器进程最先恢复控制。
本申请实施例中,通过在创建容器进程时存储容器进程在内核的全局PID列表中的PID,并由操作系统的init进程接管Daemon进程崩溃后的容器进程且不进行资源回收,并在Daemon进程重启后根据存储的容器进程的PID恢复对容器进程的控制,从而能够实现Daemon进程崩溃后容器的可用性和可控性,从而提高操作系统的鲁棒性。
图3是本申请的一个实施例容器进程的维护示意图。如图3所示,容器进程可能存在3个流程:容器创建流程、Daemon进程崩溃的容器保护流程以及Daemon恢复流程。
在容器创建流程中,守护进程Daemon进程创建容器进程。Daemon进程可通过调用fork方法创建容器进程,并在容器进程的命名空间中设置用于表示进程类型为容器进程的标识。用于设置该标记的命名空间,可以是Linux的6种命名空间的任意一种。当然,优选地,用于设置该标记的命名空间为PID命名空间。
另外,在容器创建流程中,Daemon进程还可将容器信息存储到指定存储空间。如图2的步骤S202所述,该指定存储空间可以是操作系统内存的用户态存储空间中的指定的环境变量,或者是操作系统内存以外的本地存储设备上的指定位置。
在Daemon进程崩溃后的容器保护流程中,init进程会周期性地接管孤儿进程。当操作系统监测到Daemon进程崩溃(操作系统内核中不存在Daemon进程),或者操作系统捕获到Daemon进程崩溃的事件,则说明容器进程已经不存在父进程,成为孤儿进程。
此时,init进程在周期性地接管孤儿进程时,可接管包括容器进程在内的孤儿进程。本申请实施例中,init进程还可根据孤儿进程的命名空间是否设置有用于表示进程类型为容器进程的标识,来识别孤儿进程中的容器进程。当init进程识别孤儿进程为容器进程,可确定保留容器进程的资源。在这种情况下,Daemon进程已经崩溃,但容器进程仍然能继续提供服务。
在Daemon恢复流程中,首先需要重启Daemon进程。具体地,例如,可通过systemd等进程重启Daemon进程。在重启后的Daemon进程中,Daemon进程读取指定存储空间中的PID,轮询PID对应的容器进程的状态,进而恢复容器进程的控制权。
图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其它业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成容器维护装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
通过操作系统中的Daemon进程创建容器进程,并在该容器进程的命名空间中标记进程类型为容器进程,并将该容器进程在该操作系统中的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
在该Daemon进程崩溃后,通过该操作系统中的init进程接管成为孤儿进程的容器进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;
通过重启的Daemon进程获取该指定存储空间中的PID,并恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
上述如本申请图2、3所示实施例揭示的Daemon进程和init进程执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2的方法,并实现Daemon进程和init进程在图2、3所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其它实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2所示实施例的方法。
图5是本申请的一个实施例容器维护装置的结构示意图。请参考图5,在一种软件实施方式中,容器维护装置可包括:
容器创建模块510,通过操作系统中的Daemon进程创建容器进程,并在该容器进程的命名空间中标记进程类型为容器进程,并将该容器进程在该操作系统中的内核的全局PID列表中的PID存储到指定存储空间;
容器接管模块520,在Daemon进程崩溃后,通过该操作系统中的init进程包括容器进程在内的孤儿进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;
进程重启模块530,用于在该Daemon进程崩溃后重启Daemon进程;
容器恢复模块540,通过重启的Daemon进程获取该指定存储空间中的PID,并恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
本申请实施例中,容器维护装置通过在创建容器进程时存储容器进程在内核的全局PID列表中的PID,并由操作系统的init进程接管Daemon进程崩溃后的容器进程且不进行资源回收,并在Daemon进程重启后根据存储的容器进程的PID恢复对容器进程的控制,从而能够实现Daemon进程崩溃后容器的可用性和可控性,从而提高操作系统的鲁棒性。
可选地,作为一个实施例,容器恢复模块540具体用于通过该重启的Daemon进程获取该指定存储空间中的PID,并按照PID从小到大的顺序恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制。
可选地,作为另一个实施例,容器恢复模块540具体用于通过该重启的Daemon进程获取该指定存储空间中的PID,并按照容器进程的优先级恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制;
其中,该容器创建模块510具体用于通过该Daemon进程将该容器进程在该全局PID列表中的PID及该容器进程的优先级信息存储到该指定存储空间。
可选地,作为另一个实施例,容器恢复模块540具体用于通过该重启的Daemon进程,按照容器进程所占用的资源从多到少或从少到多的顺序,恢复该重启的Daemon进程对该指定存储空间中的PID对应的容器进程的控制;
其中,该容器创建模块510具体用于通过该Daemon进程,将该容器进程在该全局PID列表中的PID及该容器进程所占用的资源信息存储到该指定存储空间。
本申请实施例还提供了一种操作系统,包括:init进程和Daemon进程,其中,
Daemon进程创建容器进程,并在该容器进程的命名空间设置用于表示进程类型为容器进程的标识,并将该容器进程在该操作系统的内核的全局PID列表中的PID存储到指定存储空间;
init进程在该Daemon进程崩溃后,接管包括容器进程在内的孤儿进程,确定该孤儿进程中命名空间设置有该标识的进程为容器进程,并确定保留容器进程的资源;
Daemon进程还在重启后获取该指定存储空间中的PID,并恢复对该指定存储空间中的PID对应的容器进程的控制。
由以上本申请实施例提供的技术方案可见,本申请实施例通过init进程接管成为孤儿进程的容器进程并保留容器进程的资源,再通过重启的Daemon进程恢复对容器进程的控制,从而使得容器进程在Daemon进程崩溃后继续可用,提高了操作系统的鲁棒性。
图6是本申请实施例操作系统的进程维护方法流程图。图6的方法可包括:
S602,创建者创建进程。
S604,存储该进程的身份标识;
S606,当该创建者失效后,接管者接管该进程,并确定保留该进程的资源。
S608,当该创建者恢复后,该创建者获取该进程的身份标识,并恢复对该进程的控制。
本申请实施例中,通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者接管并确定保留进程的资源,然后在创建者恢复时根据存储的进程的身份标识恢复对进程的控制,从而使得进程在创建者失效后继续可用,提高了操作系统的鲁棒性。
可选地,作为一个实施例,在步骤S608中,创建者获取该进程的身份标识,并恢复对该进程的控制,包括:
该创建者获取该进程的身份标识,并按照进程的身份标识从小到大的顺序,恢复对该进程的控制。
或者,可选地,作为另一个实施例,在步骤S608中,创建者获取该进程的身份标识,并恢复对该进程的控制,包括:该创建者获取该进程的身份标识,并按照进程的优先级,恢复对该进程的控制;
其中,在该存储该进程的身份标识时,该方法还包括:存储该进程的身份标识对应的优先级。
或者,可选地,作为再一个实施例,在步骤S608中,创建者获取该进程的身份标识,并恢复对该进程的控制,包括:该创建者获取该进程的身份标识,并按照进程所需占用的资源从多到少或从少到多的顺序,恢复对该进程的控制;
其中,在该存储该进程的身份标识时,该方法还包括:存储该进程的身份标识对应的资源占用信息。
可选地,作为一个实施例,在步骤S604中,存储该进程的身份标识,包括:
将该进程的身份标识存储在该操作系统内存的用户态存储空间的指定环境变量中。
或者,可选地,作为另一个实施例,在步骤S604中,存储该进程的身份标识,包括:
将该进程的身份标识存储在该操作系统内存以外的本地存储设备上的指定位置。
应理解,在本申请实施例中,对创建者、接管者及进程的具体类型不作限制。例如,在Linux中,该创建者可以为Daemon进程,该进程可以为Daemon进程创建的容器进程,该接管者为init进程,此时,图6所示实施例的具体实现可参考图2、图3所示实施例,本申请实施例在此不作限制。当然,在Linux系统中,创建者、接管者及进程也可以是其它具体的形式,其中,创建者能够创建进程,接管者能够在创建者失效后接管创建者创建的进程并确定保留资源。
图7是本申请的一个实施例电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其它业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成进程维护装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
通过创建者创建进程;
存储该进程的身份标识;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源;
当该创建者恢复后,通过该创建者获取该进程的身份标识,并恢复对该进程的控制。
上述如本申请图6揭示的创建者和接管者执行的方法,以及图2、3所示实施例揭示的Deamon进程和init进程执行的方法,可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图6的方法,并实现创建者和接管者在图6所示实施例的功能,或Deamon进程和init进程在图2、3所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其它实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图6所示实施例的方法,并具体用于执行以下方法:
通过创建者创建进程;
存储该进程的身份标识;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源;
当该创建者恢复后,通过该创建者获取该进程的身份标识,并恢复对该进程的控制。
图8是本申请的一个实施例进程维护装置的结构示意图。请参考图8,在一种软件实施方式中,进程维护装置可包括:
创建模块810,通过创建者创建进程;
存储模块820,存储该进程的身份标识;
接管模块830,当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源;
恢复模块840,当该创建者恢复后,通过该创建者获取该进程的身份标识,并恢复对该进程的控制。
本申请实施例中,进程维护装置通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者接管并确定保留进程的资源,然后在创建者恢复时根据存储的进程的身份标识恢复对进程的控制,从而使得进程在创建者失效后继续可用,从而提高操作系统的鲁棒性。
可选地,作为一个实施例,恢复模块840具体用于通过该创建者获取该进程的身份标识,并按照进程的身份标识从小到大的顺序,恢复对该进程的控制。
可选地,作为另一个实施例,恢复模块840具体用于通过该创建者获取该进程的身份标识,并按照进程的优先级,恢复对该进程的控制;
其中,存储模块820具体还用于存储该进程的身份标识对应的优先级。
可选地,作为另一个实施例,恢复模块840具体用于通过该创建者获取该进程的身份标识,并按照进程所需占用的资源从多到少或从少到多的顺序,恢复对该进程的控制;
其中,存储模块820具体还用于存储该进程的身份标识对应的资源占用信息。
本申请实施例还提供了一种操作系统,包括:接管者和创建者,其中,
通过创建者创建进程;
存储该进程的身份标识;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源;
当该创建者恢复后,通过该创建者获取该进程的身份标识,并恢复对该进程的控制。
由以上本申请实施例提供的技术方案可见,本申请实施例通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者接管并确定保留进程的资源,然后在创建者恢复时根据存储的进程的身份标识恢复对进程的控制,从而使得进程在创建者失效后继续可用,提高了操作系统的鲁棒性。
图9是本申请实施例操作系统的进程管理方法流程图。图9的方法可包括:
S902,创建者创建进程。
S904,当该创建者失效后,接管者接管该进程,并确定保留该进程的资源。
本申请实施例中,通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者接管并确定保留进程的资源,从而使得进程在创建者失效后继续可用,提高了操作系统的鲁棒性。
应理解,在本申请实施例中,对创建者、接管者及进程的具体类型不作限制。例如,在Linux中,该创建者可以为Daemon进程,该进程可以为Daemon进程创建的容器进程,该接管者为init进程,此时,图9所示实施例的具体实现可参考图2、图3所示实施例,本申请实施例在此不作限制。当然,在Linux系统中,创建者、接管者及进程也可以是其它具体的形式,其中,创建者能够创建进程,接管者能够在创建者失效后接管创建者创建的进程并确定保留资源。
图10是本申请的一个实施例电子设备的结构示意图。请参考图10,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其它业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成进程管理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
通过创建者创建进程;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源。
上述如本申请图9揭示的创建者和接管者执行的方法,以及图2、3所示实施例揭示的Deamon进程和init进程执行的方法,可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图9的方法,并实现创建者和接管者在图9所示实施例的功能,或Deamon进程和init进程在图2、3所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其它实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图9所示实施例的方法,并具体用于执行以下方法:
通过创建者创建进程;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源。
图11是本申请的一个实施例进程管理装置的结构示意图。请参考图11,在一种软件实施方式中,进程管理装置可包括:
创建模块1110,通过创建者创建进程;
接管模块1120,当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源;
本申请实施例中,进程管理装置通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者接管并确定保留进程的资源,从而使得进程在创建者失效后继续可用,从而提高操作系统的鲁棒性。
本申请实施例还提供了一种操作系统,包括:接管者和创建者,其中,
通过创建者创建进程;
当该创建者失效后,通过接管者接管该进程,并确定保留该进程的资源。
由以上本申请实施例提供的技术方案可见,本申请实施例通过在创建者创建进程时存储进程的身份标识,在创建者失效后通过接管者接管并确定保留进程的资源,从而使得进程在创建者失效后继续可用,提高了操作系统的鲁棒性。
总之,以上该仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其它数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其它内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其它光学存储、磁盒式磁带,磁带磁磁盘存储或其它磁性存储设备或任何其它非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (21)
1.一种操作系统的容器维护方法,其特征在于,包括:
操作系统中的Daemon进程创建容器进程,并在所述容器进程的命名空间设置用于表示进程类型为容器进程的标识,并将所述容器进程在所述操作系统的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
在所述Daemon进程崩溃后,所述操作系统中的init进程接管包括容器进程在内的孤儿进程,确定所述孤儿进程中命名空间设置有所述标识的进程为容器进程,并确定保留容器进程的资源;
重启的Daemon进程获取所述指定存储空间中的PID,并恢复重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制。
2.如权利要求1所述的方法,其特征在于,
所述重启的Daemon进程恢复对所述指定存储空间中的PID对应的容器进程的控制包括:
所述重启的Daemon进程按照PID从小到大的顺序,恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制。
3.如权利要求1所述的方法,其特征在于,
所述重启的Daemon进程恢复对所述指定存储空间中的PID对应的容器进程的控制包括:所述重启的Daemon进程按照容器进程的优先级,恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制;
其中,所述Daemon进程将所述容器进程在全局进程身份标识PID列表中的PID存储到指定存储空间包括:所述Daemon进程将所述容器进程在所述全局PID列表中的PID及所述容器进程的优先级信息存储到所述指定存储空间。
4.如权利要求1所述的方法,其特征在于,
所述重启的Daemon进程恢复对所述指定存储空间中的PID对应的容器进程的控制包括:所述重启的Daemon进程按照容器进程所占用的资源从多到少或从少到多的顺序,恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制;
其中,所述Daemon进程将所述容器进程在全局进程身份标识PID列表中的PID存储到指定存储空间包括:所述Daemon进程将所述容器进程在所述全局PID列表中的PID及所述容器进程所占用的资源信息存储到所述指定存储空间。
5.如权利要求1-4中任一项所述的方法,其特征在于,
所述指定存储空间为所述操作系统内存的用户态存储空间中指定的环境变量;或者
所述指定存储空间为所述操作系统内存以外的本地存储设备上的指定位置。
6.一种操作系统中的容器维护装置,其特征在于,包括:
容器创建模块,通过操作系统中的Daemon进程创建容器进程,并在所述容器进程的命名空间中标记进程类型为容器进程,并将所述容器进程在所述操作系统中的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
容器接管模块,在Daemon进程崩溃后,通过所述操作系统中的init进程包括容器进程在内的孤儿进程,确定所述孤儿进程中命名空间设置有所述标识的进程为容器进程,并确定保留容器进程的资源;
进程重启模块,用于在所述Daemon进程崩溃后重启Daemon进程;
容器恢复模块,通过重启的Daemon进程获取所述指定存储空间中的PID,并恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制。
7.如权利要求6所述的装置,其特征在于,
容器恢复模块具体用于通过所述重启的Daemon进程获取所述指定存储空间中的PID,并按照PID从小到大的顺序恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制。
8.如权利要求6所述的装置,其特征在于,
容器恢复模块具体用于通过所述重启的Daemon进程获取所述指定存储空间中的PID,并按照容器进程的优先级恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制;
其中,所述容器创建模块具体用于通过所述Daemon进程将所述容器进程在所述全局PID列表中的PID及所述容器进程的优先级信息存储到所述指定存储空间。
9.如权利要求6所述的装置,其特征在于,
容器恢复模块具体用于通过所述重启的Daemon进程,按照容器进程所占用的资源从多到少或从少到多的顺序,恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制;
其中,所述容器创建模块具体用于通过所述Daemon进程,将所述容器进程在所述全局PID列表中的PID及所述容器进程所占用的资源信息存储到所述指定存储空间。
10.如权利要求6-9中任一项所述的装置,其特征在于,
所述指定存储空间为所述操作系统内存的用户态存储空间中指定的环境变量;或者
所述指定存储空间为所述操作系统内存以外的本地存储设备上的指定位置。
11.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
通过操作系统中的Daemon进程创建容器进程,并在所述容器进程的命名空间中标记进程类型为容器进程,并将所述容器进程在所述操作系统中的内核的全局进程身份标识PID列表中的PID存储到指定存储空间;
在所述Daemon进程崩溃后,通过所述操作系统中的init进程接管成为孤儿进程的容器进程,确定所述孤儿进程中命名空间设置有所述标识的进程为容器进程,并确定保留容器进程的资源;
通过重启的Daemon进程获取所述指定存储空间中的PID,并恢复所述重启的Daemon进程对所述指定存储空间中的PID对应的容器进程的控制。
12.一种进程维护方法,其特征在于,包括:
创建者创建进程,并在所述进程的命名空间设置用于表示所述进程的类型的标识;
存储所述进程的身份标识;
当所述创建者失效后,接管者接管包括所述进程在内的孤儿进程,从所述孤儿进程中确定命名空间设置有所述标识的进程,并确定保留该进程的资源;
当所述创建者恢复后,所述创建者获取命名空间设置有所述标识的进程的身份标识,并恢复对命名空间设置有所述标识的进程的控制。
13.如权利要求12所述的方法,其特征在于,
所述创建者获取命名空间设置有所述标识的进程的身份标识,并恢复对命名空间设置有所述标识的进程的控制,包括:
所述创建者获取命名空间设置有所述标识的进程的身份标识,并按照进程的身份标识从小到大的顺序,恢复对命名空间设置有所述标识的进程的控制。
14.如权利要求12所述的方法,其特征在于,
所述创建者获取命名空间设置有所述标识的进程的身份标识,并恢复对命名空间设置有所述标识的进程的控制,包括:所述创建者获取命名空间设置有所述标识的进程的身份标识,并按照进程的优先级,恢复对命名空间设置有所述标识的进程的控制;
其中,在所述存储所述进程的身份标识时,所述方法还包括:存储所述进程的身份标识对应的优先级。
15.如权利要求12所述的方法,其特征在于,
所述创建者获取命名空间设置有所述标识的进程的身份标识,并恢复对命名空间设置有所述标识的进程的控制,包括:所述创建者获取命名空间设置有所述标识的进程的身份标识,并按照进程所需占用的资源从多到少或从少到多的顺序,恢复对命名空间设置有所述标识的进程的控制;
其中,在所述存储所述进程的身份标识时,所述方法还包括:存储所述进程的身份标识对应的资源占用信息。
16.如权利要求12-15中任一项所述的方法,其特征在在于,
存储所述进程的身份标识,包括:
将所述进程的身份标识存储在操作系统内存的用户态存储空间的指定环境变量中;或者
将所述进程的身份标识存储在操作系统内存以外的本地存储设备上的指定位置。
17.一种进程维护装置,其特征在于,包括:
进程创造模块,通过创建者创建进程,并在所述进程的命名空间设置用于表示所述进程的类型的标识;
存储模块,存储所述进程的身份标识;
接管模块,当所述创建者失效后,通过接管者接管包括所述进程在内的孤儿进程,从所述孤儿进程中确定命名空间设置有所述标识的进程,并确定保留该进程的资源;
恢复模块,当所述创建者恢复后,通过所述创建者获取命名空间设置有所述标识的进程的身份标识,并恢复对命名空间设置有所述标识的进程的控制。
18.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
通过创建者创建进程,并在所述进程的命名空间设置用于表示所述进程的类型的标识;
存储所述进程的身份标识;
当所述创建者失效后,接管者接管包括所述进程在内的孤儿进程,从所述孤儿进程中确定命名空间设置有所述标识的进程,并确定保留该进程的资源;
当所述创建者恢复后,所述创建者获取命名空间设置有所述标识的进程的身份标识,并恢复对命名空间设置有所述标识的进程的控制。
19.一种进程管理方法,其特征在于,包括:
创建者创建进程,并在所述进程的命名空间设置用于表示所述进程的类型的标识;
当所述创建者失效后,接管者接管包括所述进程在内的孤儿进程,从所述孤儿进程中确定命名空间设置有所述标识的进程,并确定保留该进程的资源。
20.一种进程管理装置,其特征在于,包括:
进程创造模块,通过创建者创建进程,并在所述进程的命名空间设置用于表示所述进程的类型的标识;
接管模块,当所述创建者失效后,接管者接管包括所述进程在内的孤儿进程,从所述孤儿进程中确定命名空间设置有所述标识的进程,并确定保留该进程的资源。
21.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
通过创建者创建进程,并在所述进程的命名空间设置用于表示所述进程的类型的标识;
当所述创建者失效后,接管者接管包括所述进程在内的孤儿进程,从所述孤儿进程中确定命名空间设置有所述标识的进程,并确定保留该进程的资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710560644.XA CN109240809B (zh) | 2017-07-11 | 2017-07-11 | 进程维护管理方法、容器维护方法、装置和操作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710560644.XA CN109240809B (zh) | 2017-07-11 | 2017-07-11 | 进程维护管理方法、容器维护方法、装置和操作系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109240809A CN109240809A (zh) | 2019-01-18 |
CN109240809B true CN109240809B (zh) | 2022-08-23 |
Family
ID=65083894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710560644.XA Active CN109240809B (zh) | 2017-07-11 | 2017-07-11 | 进程维护管理方法、容器维护方法、装置和操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240809B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579385B (zh) * | 2019-09-29 | 2024-09-27 | 中国石油天然气集团有限公司 | 一种服务器文件监控方法及装置 |
CN110798520B (zh) * | 2019-10-25 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、系统、装置及可读存储介质 |
CN111090536B (zh) * | 2019-11-19 | 2021-11-16 | 北京字节跳动网络技术有限公司 | 一种获取内存泄露信息的方法、装置、介质和电子设备 |
CN111881453A (zh) * | 2020-07-20 | 2020-11-03 | 北京百度网讯科技有限公司 | 一种容器逃逸检测方法、装置以及电子设备 |
CN114168203B (zh) * | 2020-09-10 | 2024-02-13 | 成都鼎桥通信技术有限公司 | 双系统运行状态控制方法、装置和电子设备 |
CN113032129A (zh) * | 2021-04-22 | 2021-06-25 | 北京小佑科技有限公司 | 一种容器阻断用户指定进程生成方法 |
CN113791866B (zh) * | 2021-09-16 | 2024-07-30 | 北京金山云网络技术有限公司 | 控制Pod资源占用量的方法、装置和电子设备 |
CN114546269A (zh) * | 2022-02-15 | 2022-05-27 | 京东科技信息技术有限公司 | 存储挂载方法、装置及电子设备 |
CN114691355A (zh) * | 2022-03-01 | 2022-07-01 | 浙江大华技术股份有限公司 | 云平台的构建方法、电子设备和计算机可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091535A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Application identity for software products |
US9667490B1 (en) * | 2013-06-05 | 2017-05-30 | Parallels IP Holdings GmbH | Method for high availability of services in cloud computing systems |
US9612817B2 (en) * | 2013-10-30 | 2017-04-04 | Oracle International Corporation | System and method for providing a physical plugin for use in a cloud platform environment |
CN105335171B (zh) * | 2014-06-24 | 2019-05-10 | 北京奇虎科技有限公司 | 应用程序常驻操作系统后台的方法及装置 |
US11275861B2 (en) * | 2014-07-25 | 2022-03-15 | Fisher-Rosemount Systems, Inc. | Process control software security architecture based on least privileges |
US9921885B2 (en) * | 2015-06-19 | 2018-03-20 | Vmware, Inc. | Resource management for containers in a virtualized environment |
CN105930215A (zh) * | 2016-04-07 | 2016-09-07 | 珠海市魅族科技有限公司 | 一种移动终端的控制方法及控制装置 |
CN106776212B (zh) * | 2016-12-09 | 2020-02-25 | 中电科华云信息技术有限公司 | 容器集群部署多进程应用的监管系统及方法 |
-
2017
- 2017-07-11 CN CN201710560644.XA patent/CN109240809B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109240809A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240809B (zh) | 进程维护管理方法、容器维护方法、装置和操作系统 | |
CN107450981B (zh) | 一种区块链共识方法及设备 | |
CN107450979B (zh) | 一种区块链共识方法及装置 | |
AU2018246765B2 (en) | Block chain-based data processing method and equipment | |
EP3547648A1 (en) | Service processing and consensus method and device | |
WO2019201011A1 (zh) | 系统的启动方法、装置、电子设备和存储介质 | |
CN109669709B (zh) | 一种区块链升级的数据迁移方法及数据迁移系统 | |
CN107608757B (zh) | 一种基于容器的隔离处理方法及相关设备 | |
CN107066519B (zh) | 一种任务检测方法及装置 | |
CN108846749B (zh) | 一种基于区块链技术的分片化的交易执行系统及方法 | |
JP2019537112A (ja) | アカウントログインのための方法、装置及びサーバ | |
CN110020859B (zh) | 一种并行执行的区块链共识方法、装置及电子设备 | |
CN112463363B (zh) | 一种资源编排方法、装置、设备及存储介质 | |
EP2839369B2 (en) | Information processing device and method for protecting data in a call stack | |
CN110648136A (zh) | 共识与交易同步的并行处理方法、装置和电子设备 | |
CN112597013A (zh) | 一种在线开发以及调试方法及装置 | |
CN116305298B (zh) | 一种算力资源管理方法、装置、存储介质及电子设备 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN109144600B (zh) | 一种应用程序的运行方法、设备及计算机可读介质 | |
CN111949297B (zh) | 一种区块链智能合约升级方法、装置及电子设备 | |
US10474512B1 (en) | Inter-process intra-application communications | |
CN109783272B (zh) | 磁盘快照处理方法、装置和设备 | |
CN108628615B (zh) | 一种废弃代码检测方法、装置以及设备 | |
CN110704295B (zh) | 一种数据调用方法、装置、设备及系统 | |
CN112306710A (zh) | 一种业务处理系统、接口调用方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230613 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |