使用容器进行多进程启动的方法及装置的制造方法

xiaoxiao2020-10-23  22

使用容器进行多进程启动的方法及装置的制造方法
【技术领域】
[0001]本发明涉及web平台技术领域,特别是涉及一种使用容器进行多进程启动的方法及装置。
【背景技术】
[0002]为了能够节省硬件资源,虚拟化技术得到越来越多的认可及使用。虚拟化技术是一种资源管理技术,是将计算机的各种实体资源,如服务器,予以抽象、转换后呈现出来,打破实体机构间不可分割的障碍。目前,为了节省服务器资源,通过Xen虚拟化技术将一台服务器虚拟出多台服务器,虚拟出的多台服务器之间共享包括内核在内的一个完整的系统镜像,同时一个服务器上能够允许多个进程同时运行,以满足不同业务的应用需求。在通过Xen虚拟化技术虚拟服务器时,需要在实体服务器上构建一个虚拟化层,基于虚拟化层虚拟多个服务器,确保了虚拟的多个服务器之间运行空间的隔离,但是,由于虚拟化层的构建,导致虚拟服务器与系统内核不是直接进行交互,因此,使得虚拟服务器的性能不能满足不同业务的更多需求。
[0003]为了解决上述问题,可以将服务器上的不同业务分离到容器中,容器的构建无需构建虚拟化层,就能提供隔离的运行空间,即每个容器内都包含一个独享的完整运行空间,构建后的容器可以与系统内核直接进行交互,提高了中央处理器(Central ProcessingUnit,CPU)、内存等硬件资源的处理效率。但是,容器一次往往允许运行一个进程,而执行一个业务往往需要多个进程的支持,从而导致在业务执行过程中需要使用多个容器,造成资源的浪费。

【发明内容】

[0004]有鉴于此,本发明提供的一种使用容器进行多进程启动的方法及装置,主要目的在于解决容器一次往往允许运行一个进程,而执行一个业务往往需要多个进程的支持,从而导致在业务执行过程中需要使用多个容器,造成资源的浪费的问题。
[0005]依据本发明一个方面,本发明提供了一种使用容器进行多进程启动的方法,包括:
[0006]对容器进程控件设置预设目录,所述容器进程控件能够通过调用一个目标进程实现多个子进程的调用;
[0007]加载所述预设目录中的脚本文件,获得容器镜像,所述脚本文件包含待启动服务项所必须的功能应用,所述功能应用在运行时需要由多个进程执行完成;
[0008]运行所述容器镜像,以启动所述多个子进程。
[0009]依据本发明另一个方面,本发明提供了一种使用容器进行多进程启动的装置,包括:
[0010]设置单元,用于对容器进程控件设置预设目录,所述容器进程控件能够通过调用一个目标进程实现多个子进程的调用;
[0011]加载单元,用于加载所述设置单元设置的所述预设目录中的脚本文件,所述脚本文件包含待启动服务项所必须的功能应用,所述功能应用在运行时需要由多个进程执行完成;
[0012]获取单元,用于在所述加载单元加载所述预设目录中的脚本文件之后,获得容器镜像;
[0013]运行单元,用于运行所述获取单元获取的所述容器镜像,以启动所述多个子进程。
[0014]借由上述技术方案,本发明提供的使用容器进行多进程启动的方法及装置,首先在容器进程控件中设置预设目录,加载预设目录中的脚本文件,获取容器镜像,由于容器进程控件能够通过调用一个目标进程实现多个子进程的调用,将容器进程控件与脚本文件进行“捆绑”,本发明中可以将脚本文件中包含的功能应用在运行时需要的多个进程作为容器进程控件调用目标进程的子进程,因此,当容器镜像运行时,实现使用一个容器启动多个进程。
[0015]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0016]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0017]图1示出了本发明实施例提供的一种使用容器进行多进程启动的方法的流程图;
[0018]图2示出了本发明实施例提供的一种使用容器进行多进程启动的装置的组成框图;
[0019]图3示出了本发明实施例提供的另一种使用容器进行多进程启动的装置的组成框图;
[0020]图4示出了本发明实施例提供的另一种使用容器进行多进程启动的装置的组成框图。
【具体实施方式】
[0021]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0022]本发明实施例提供了一种使用容器进行多进程启动的方法,如图1所示,该方法包括:
[0023]101、对容器进程控件设置预设目录。
[0024]本发明实施例中,容器进程控件是从其他类型的容器中获取得到的,但是由于在开发容器进程控件时,往往使用不同的编程语言,从而使得容器进程控件的使用环境存在差异,可能导致一种容器内的功能服务不能直接应用到其他的容器中,因此,在本发明实施例使用的容器中运行从其他类型的容器中获取的容器进程控件时,需要对获取的该容器进程控件进行适配,生成能够适用于本发明实施例所述的容器中,适配后的该容器进程控件具有通过调用一个目标进程实现多个子进程的调用的服务。
[0025]对容器进程控件设置预设目录,其中,该预设目录为自定义的一个目录信息,本发明实施例设置预设目录的目的在于,当容器进程控件在调用一个目标进程时,能够通过预设目录的执行启动该目标进程所调用的多个子进程。
[0026]102、加载预设目录中的脚本文件,获得容器镜像。
[0027]脚本文件包含待启动服务项所必须的功能应用,功能应用在运行时需要由多个进程执行完成。需要说明的是,该脚本文件中仅包含待启动服务项所必须的功能应用,而未包含待启动服务项所非必须的功能应用,在后续容器在运行时,避免了启动待启动服务项所非必须的功能应用,节省了资源。在本发明实施例中,也可以将待启动服务项所非必须的功能应用添加到脚本文件中,本发明实施例中对脚本文件中包含的具体的功能应用不进行限定。
[0028]本发明实施例中,待启动服务项可以包括但不局限于以下内容,例如,待启动服务项为开机服务、关机服务;或者自动启动某个应用程序服务等等。具体的,本发明实施例对待启动服务项的内容不进行限定。
[0029]将脚本文件加载到步骤101中的容器进程控件中预设目录中 ,生成容器镜像。预设目录作为进程控件与脚本文件之间的转接点,将脚本文件与容器进程控件进行绑定,并且将脚本文件中的功能应用在运行时需要的进程作为容器进程控件调用的子进程,实现一个容器内同时运行多个进程。
[0030]103、运行容器镜像,以启动多个子进程。
[0031]当容器镜像在运行时,首先启动容器进程控件,容器进程控件调用的目标进程为容器启动时自动执行的进程pidl,进程Pidl调用预设目录中的功能应用在运行时需要的进程作为容器进程控件调用的子进程,由此便完成了在一个容器内启动需要由多个进程支持的待启动服务项。
[0032]本发明实施例提供的使用容器进行多进程启动的方法,首先在容器进程控件中设置预设目录,加载预设目录中的脚本文件,获取容器镜像,由于容器进程控件能够通过调用一个目标进程实现多个子进程的调用,将容器进程控件与脚本文件进行“捆绑”,本发明实施例中可以将脚本文件中包含的功能应用在运行时需要的多个进程作为容器进程控件调用目标进程的子进程,因此,当容器镜像运行时,实现使用一个容器启动多个进程。
[0033]进一步的,在加载预设目录中的脚本文件时,可以采用但不局限于以下的方式实现。
[0034]方式一:所述预设目录中记录有脚本文件,直接加载预设目录中记录的脚本文件。
[0035]将包含待启动服务项所必须的功能应用的脚本文件记录到预设目录中,预设目录在记录脚本文件时,可以根据不同类型的待启动服务项进行记录,也可以根据待启动服务项的启动流程记录脚本文件。需要说明的是,通过该种方式加载预设目录中的脚本文件时,预设目录只能够加载预设目录中记录的脚本文件,在加载预设目录中的脚本文件时缺乏一定的灵活性。
[0036]方式二:所述预设目录中记录有用于调用脚本文件的调用指令,加载该调用指令,以启动调用指令调用执行加载脚本文件。
[0037]为了能够灵活的加载预设目录中的脚本文件,可以通过方式二中所述的通过加载调用指令,执行加载脚本文件。该调用指令只用于启动执行脚本文件,其实质在于容器镜像运行时,将启动执行脚本文件的控制权限下放给调用指令,该调用指令是一个可执行性脚本。示例性的,假设,脚本文件中包含5种待启动服务项,待启动服务项1、待启动服务项2、待启动服务项3、待启动服务项4、待启动服务项5,该5种待启动服务项分别对应不同的功能应用,容器加载调用指令,选择上述脚本文件中的一种待启动服务项进行加载,实现通过调用指令启动多个进程。需要说明的是,可以根据用户的实际需求对脚本文件中的待启动服务项进行配置,调用指令可以灵活的启动脚本文件中任意的待启动服务项。
[0038]进一步的,本发明实施例所述的目标进程具备调用及控制其他子进程的功能,而其他的子进程不具备调用及控制其他子进程的功能。示例性的,假设,目标进程为pidl,该pidl调用及控制下的子进程包括pid2、pid3、pid4、pid5、pid6、pid7、pid8,在本发明实施例提供的方法中,pidl能够控制pid2、pid3、pid4、pid5、pid6、pid7、pid8的开启或者关闭,而pid2不具备开启或者关闭pidl、pid3、pid4、pid5、pid6、pid7、pid8中的任何一个子进程的控制功能,同理,pid3也不具备开启或者关闭pidl、pid2、pid4、pid5、pid6、pid7、PidS中的任何一个子进程的控制功能。具体的,本发明实施例对目标进程及其控制下子进程的个数、名称等信息不进行限定。
[0039]进一步的,在运行容器镜像之后,容器向目标进程发送控制指令,以控制多个子进程的关闭或开启。在具体实施时,当容器镜像运行时,计算机的操作人员向目标进程发送关闭或开启目标进程控制下的一个或者多个子进程的控制指令,例如,向该目标进程发送启动子进程3的start控制指令,向该目标进程发送启动子进程2、启动子进程6的start控制指令;或者,向目标进程发送停止子进程5的kill控制指令、启动子进程4的start控制指令。本发明实施例向目标进程发明控制指令的内容、个数不进行具体限定。
[0040]进一步的,在运行容器镜像之后,容器接收目标进程发送的响应信号,该响应信号用于记录多个子进程当前的关闭状态或者开启状态。在本发明实施例的一种实现方式中,当目标进程接收到子进程发送的其自身当前的关闭状态或者开启状态时,并在预置时间内向容器发送接收到的子进程其自身当前的关闭状态或者开启状态。示例性的,当子进程I接收到目标进程发送的kill控制指令时,子进程I立即向目标进程反馈已经执行完毕kill控制指令,并且子进程I当前处于关闭状态,在目标进程接收到子进程I发送的响应信号之后,在预置时间内向容器发送子进程I发送的响应信号,以便容器能够获取到子进程I的关闭状态或者开启状态。其中,所述预置时间为人为设置的时间参数,为了保证容器能够及时获取到目标进程控制下的子进程的关闭状态或者开启状态信息,该预置时间不能设置的太长,例如,可以设置为80ms ;或者,可以设置为20ms等等。具体的,本发明实施例对预置时间的设置方式具体实现过程不进行限定。
[0041]在本发明实施例的另一种实现方式中,容器接收目标进程发送的响应信号时,还可以采用目标进程定时向容器发送子进程当前的关闭状态或者开启状态。示例性的,目标进程控制下的所有子进程定时向目标进程发送其自身当前的关闭状态或者开启状态,目标进程接收到所有子进程发送的当前的关闭状态或者开启状态后,向容器发送所有子进程的响应信号,以便容器能够获取到所有子进程的关闭状态或者开启状态。为了节省容器资源,容器可以只获取指定部分子进程的响应信息,指定部分子进程定时向目标进程发送其自身当前的关闭状态或者开启状态,目标进程接收到指定部分子进程发送的当前的关闭状态或者开启状态后,向容器发送指定部分子进程的响应信号。子进程定时向目标进程发送其自身当前的关闭状态或者开启状态,需要将定时的时间间隔设置的很小,确保容器能够及时的获取子进程当前的关闭状态或者开启状态。本发明实施例对接收目标进程发送响应信号的具体时机不进行限定。
[0042]进一步的,运行容器镜像即可实现一个容器中启动多个进程。计算机在运行的过程中不会立即运行新生成的容器镜像,需要通过预设的操作才能运行新生成的容器镜像。在运行容器镜像时,可以采用但不局限于以下的实现方式,在本发明实施例的一种实现方式中,通过发送启动操作指令的方式运行容器镜像,在生成容器镜像后,发送start操作指令即可运行容器镜像,当计算机启动时,无需再次发送start操作指令,该容器镜像就会自动启动;在本发明实施例的另一种实现方式中,当容器镜像生成后,输出显示重新启动计算机的提示信息,在重新启动计算机后运行容器镜像,经过一次重新启动计算机后,以后都会自动运行该容器镜像。本发明实施例中在输出显示重新启动计 算机的提示信息时可以包括但不局限于以下内容,例如,用户可以手动选择重新启动计算机,若用户没有选择手动重新启动计算机,则在预设时间内,会自动重新启动计算机;或者,在输出显示重新启动计算机的提示信息时,自动重新启动计算机。本发明实施例对重新启动计算机的具体实现方式不进行限定。
[0043]在发送启动操作指令运行容器镜像时,可以采用但不局限于以下的方式实现运行容器镜像,例如,通过键盘发送启动操作指令运行容器镜像;或者,通过鼠标操作启动操作指令运行容器镜像。本发明实施例对启动操作指令运行容器镜像的具体实现方式不进行限定。
[0044]进一步的,为了能够更好的理解本发明实施例提供的方法通过一个容器启动多个进程,以下将通过一个具体的场景进行说明。当待启动服务项为开机服务并且应用场景为Linux时,Linux加载后,对计算机设备驱动进行初始化,Linux首先进行内核的引导,然后执行容器镜像中容器进程控件所调用的目标进程,加载预置目录中的脚本文件,其中,内存分析、磁盘分析是待启动服务项为开机服务并且应用场景为Linux时所必须的功能应用,目标进程调用上述开机服务必须的功能应用在运行时需要的多个子进程,计算机开机启动,由此便实现了通过一个容器启动多个进程。上述示例为待启动服务项与具体应用场景结合时对运行容器镜像的说明,其中,涉及的启动参数、启动流程仅为便于说明而给出的示例性举例,具体的开机服务流程请参考本领域所熟知的实现方式。
[0045]进一步的,本发明实施例还提供一种使用容器进行多进程启动的装置,如图2所示,该装置包括:
[0046]设置单元21,用于对容器进程控件设置预设目录,容器进程控件能够通过调用一个目标进程实现多个子进程的调用,对容器进程控件设置预设目录,其中,该预设目录为自定义的一个目录信息,本发明实施例设置预设目录的目的在于,当容器进程控件在调用一个目标进程时,能够通过预设目录的执行启动该目标进程所调用的多个子进程;
[0047]加载单元22,用于加载设置单元21设置的预设目录中的脚本文件,脚本文件包含待启动服务项所必须的功能应用,功能应用在运行时需要由多个进程执行完成,需要说明的是,该脚本文件中仅包含待启动服务项所必须的功能应用,而未包含待启动服务项所非必须的功能应用,在后续容器在运行时,避免了启动待启动服务项所非必须的功能应用,节省了资源;
[0048]获取单元23,用于在加载单元22加载预设目录中的脚本文件之后,获得容器镜像,将脚本文件加载到步骤101中的容器进程控件中预设目录中,生成容器镜像。预设目录作为进程控件与脚本文件之间的转接点,将脚本文件与容器进程控件进行绑定,并且将脚本文件中的功能应用在运行时需要的进程作为容器进程控件调用的子进程,实现一个容器内同时运行多个进程;
[0049]运行单元24,用于运行获取单元23获取的容器镜像,以启动多个子进程,当容器镜像在运行时,首先启动容器进程控件,容器进程控件调用的目标进程为容器启动时自动执行的进程pidl,进程Pidl调用预设目录中的功能应用在运行时需要的进程作为容器进程控件调用的子进程,由此便完成了在一个容器内启动需要由多个进程支持的待启动服务项。
[0050]进一步的,预设目录中记录有用于调用脚本文件的调用指令,加载单元22,还用于加载调用指令,以启动调用指令调用执行加载脚本文件,该调用指令只用于启动执行脚本文件,其实质在于容器镜像运行时,将启动执行脚本文件的控制权限下放给调用指令,该调用指令是一个可执行性脚本。
[0051]进一步的,预设目录中记录有脚本文件,加载单元22,还用于直接加载预设目录中记录的脚本文件,将包含待启动服务项所必须的功能应用的脚本文件记录到预设目录中,预设目录在记录脚本文件时,可以根据不同类型的待启动服务项进行记录,也可以根据待启动服务项的启动流程记录脚本文件。需要说明的是,通过该种方式加载预设目录中的脚本文件时,预设目录只能够加载预设目录中记录的脚本文件,在加载预设目录中的脚本文件时缺乏一定的灵活性。
[0052]进一步的,如图3所示,装置还包括:
[0053]发送单元25,用于在运行单元24运行容器镜像之后,向目标进程发送控制指令,控制多个子进程的关闭或开启,当容器镜像运行时,计算机的操作人员向目标进程发送关闭或开启目标进程控制下的一个或者多个子进程的控制指令;
[0054]接收单元26,用于接收目标进程发送的响应信号,响应信号用于记录多个子进程当前的关闭状态或开启状态。
[0055]进一步的,如图4所示,运行单元24,包括:
[0056]发送模块241,用于发送启动操作指令运行容器镜像,通过发送启动操作指令的方式运行容器镜像,在生成容器镜像后,发送start操作指令即可运行容器镜像,当计算机启动时,无需再次发送start操作指令,该容器镜像就会自动启动;
[0057]重启模块242,用于通过重启计算机运行容器镜像,当容器镜像生成后,输出显示重新启动计算机的提示信息,在重新启动计算机后运行容器镜像,经过一次重新启动计算机后,以后都会自动运行该容器镜像。
[0058]本发明实施例提供的使用容器进行多进程启动的装置,首先在容器进程控件中设置预设目录,加载预设目录中的脚本文件,获取容器镜像,由于容器进程控件能够通过调用一个目标进程实现多个子进程的调用,将容器进程控件与脚本文件进行“捆绑”,本发明实施例中可以将脚本文件中包含的功能应用在运行时需要的多个进程作为容器进程控件调用目标进程的子进程,因此,当容器镜像运行时,实现使用一个容器启动多个进程。
[0059]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0060]可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
[0061]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0062]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0063]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。 [0064]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0065]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0066]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0067]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0068]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【主权项】
1.一种使用容器进行多进程启动的方法,其特征在于,包括: 对容器进程控件设置预设目录,所述容器进程控件能够通过调用一个目标进程实现多个子进程的调用; 加载所述预设目录中的脚本文件,获得容器镜像,所述脚本文件包含待启动服务项所必须的功能应用,所述功能应用在运行时需要由多个进程执行完成; 运行所述容器镜像,以启动所述多个子进程。2.根据权利要求1所述的方法,其特征在于,所述预设目录中记录有用于调用脚本文件的调用指令,所述加载所述预设目录中的脚本文件,包括: 加载所述调用指令,以启动所述调用指令调用执行加载所述脚本文件。3.根据权利要求1所述的方法,其特征在于,所述预设目录中记录有脚本文件,所述加载所述预设目录中的脚本文件,包括: 直接加载所述预设目录中记录的脚本文件。4.根据权利要求1所述的方法,其特征在于,在运行所述容器镜像之后,所述方法还包括: 向所述目标进程发送控制指令,控制所述多个子进程的关闭或开启; 接收所述目标进程发送的响应信号,所述响应信号用于记录所述多个子进程当前的关闭状态或开启状态。5.根据权利要求1所述的方法,其特征在于,所述运行所述容器镜像,包括: 发送启动操作指令运行所述容器镜像; 或者通过重启计算机运行所述容器镜像。6.一种使用容器进行多进程启动的装置,其特征在于,包括: 设置单元,用于对容器进程控件设置预设目录,所述容器进程控件能够通过调用一个目标进程实现多个子进程的调用;加载单元,用于加载所述设置单元设置的所述预设目录中的脚本文件,所述脚本文件包含待启动服务项所必须的功能应用,所述功能应用在运行时需要由多个进程执行完成;获取单元,用于在所述加载单元加载所述预设目录中的脚本文件之后,获得容器镜像; 运行单元,用于运行所述获取单元获取的所述容器镜像,以启动所述多个子进程。7.根据权利要求6所述的装置,其特征在于,所述预设目录中记录有用于调用脚本文件的调用指令,所述加载单元,还用于加载所述调用指令,以启动所述调用指令调用执行加载所述脚本文件。8.根据权利要求6所述的装置,其特征在于,所述预设目录中记录有脚本文件,所述加载单元,还用于直接加载所述预设目录中记录的脚本文件。9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 发送单元,用于在所述运行单元运行所述容器镜像之后,向所述目标进程发送控制指令,控制所述多个子进程的关闭或开启; 接收单元,用于接收所述目标进程发送的响应信号,所述响应信号用于记录所述多个子进程当前的关闭状态或开启状态。10.根据权利要求6所述的装置,其特征在于,所述运行单元,包括:发送模块,用于发送启动操作指令运行所述容器镜像;重启模块,用于通过重启计算机运行所述容器镜像。
【专利摘要】本发明公开了一种使用容器进行多进程启动的方法及装置,涉及web平台技术领域,主要目的在于解决容器一次往往允许运行一个进程,而执行一个业务往往需要多个进程的支持,从而导致在业务执行过程中需要使用多个容器,造成资源的浪费的问题。本发明的主要技术方案包括:对容器进程控件设置预设目录,所述容器进程控件能够通过调用一个目标进程实现多个子进程的调用;加载所述预设目录中的脚本文件,获得容器镜像,所述脚本文件包含待启动服务项所必须的功能应用,所述功能应用在运行时需要由多个进程执行完成;运行所述容器镜像,以启动所述多个子进程。本发明主要应用于Linux系统使用容器进行多进程启动的过程中。
【IPC分类】G06F9/445
【公开号】CN104899068
【申请号】CN201510374010
【发明人】许斯亮, 赵鹏
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
【公开日】2015年9月9日
【申请日】2015年6月30日

最新回复(0)