基于Linux系统控制应用程序的方法以及电子设备与流程

文档序号:16855171发布日期:2019-02-12 23:11阅读:176来源:国知局
基于Linux系统控制应用程序的方法以及电子设备与流程

本发明涉及linux操作系统领域,尤其涉及基于linux系统控制应用程序的方法以及电子设备。



背景技术:

linux是一套免费使用和自由传播的类unix操作系统,是一个基于posix和unix的多用户、多任务、支持多线程和多cpu的操作系统。linux能运行主要的unix工具软件、应用程序和网络协议。linux支持32位和64位硬件。linux继承了unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

linux至少通过1个内存来管理应用程序或进程。如果应用程序大量请求内存导致系统内存不足,这时将触发linux内核里的outofmemory(oom)killer(内存溢出“杀手”),oomkiller会“杀掉”(终止)某个进程以腾出足够的内存,这样,系统便不会立刻崩溃。

但是,linux内核提供的oomkiller并不会识别进程或应用程序提供的功能,oomkiller可能将最重要的服务进程进行强制终止,导致服务异常终止。

也就是说,现有技术中,oomkiller无法判断应用程序或进程是直接终止,还是维持运行状态。oomkiller只能随机或将全部应用程序终止运行,或者说,oomkiller无法选择性终止应用程序或进程。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供基于linux系统控制应用程序的方法以及电子设备,旨在解决现有技术中,oomkiller无法选择性终止应用程序或进程的问题。

本发明的技术方案如下:

一种基于linux系统控制应用程序的方法,其包括步骤:

获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件;

根据所述目标配置文件对oomkiller进行更新,并根据目标配置文件对应用程序进行控制。

所述的基于linux系统控制应用程序的方法,其中,所述获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件的步骤中,通过控制组对所述配置文件进行编辑得到所述目标配置文件。

所述的基于linux系统控制应用程序的方法,其中,所述获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件的步骤中,还包括:

预先定义内存阈值和cpu阈值,以及通过编辑配置文件将预设的应用程序加入规则名单。

所述的基于linux系统控制应用程序的方法,其中,所述根据所述目标配置文件对oomkiller进行更新,并根据更新后的oomkiller对应用程序进行控制的步骤中,还包括:

将目标配置文件和预设的内存阈值和cpu阈值进行对比,得到对比结果,并根据对比结果对应用程序进行控制。

所述的基于linux系统控制应用程序的方法,其中,所述根据所述目标配置文件对oomkiller进行更新,并根据更新后的oomkiller对应用程序进行控制的步骤具体包括:

当对比结果为目标配置文件大于预设的内存阈值和cpu阈值时,且应用程序属于所述规则名单中,则不对应用程序进行回收;

当对比结果为目标配置文件大于预设的内存阈值和cpu阈值时,且应用程序不属于所述规则名单中,则对应用程序进行回收;

当对比结果为目标配置文件小于或等于预设的内存阈值和cpu阈值时,应用程序处于所述规则名单中或不处于所述规则名单中,均不对应用程序进行回收。

本发明还提供一种电子设备,其包括:

处理器,适于实现各指令,以及

存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:

获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件;

根据所述目标配置文件对oomkiller进行更新,并根据目标配置文件对应用程序进行控制。

所述的电子设备,其中,所述获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件的步骤中,通过控制组对所述配置文件进行编辑得到所述目标配置文件。

所述的电子设备,其中,所述获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件的步骤中,还包括:

预先定义内存阈值和cpu阈值,以及通过编辑配置文件将部分应用程序加入规则名单。

本发明还提供一种计算机程序产品,其中,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的基于linux系统控制应用程序的方法。

本发明还提供一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的基于linux系统控制应用程序的方法。

有益效果:通过本发明提供的方法,通过先获取oomkiller的配置文件,然后,对配置文件进行更新,得到目标配置文件,再根据目标配置文件对oomkiller进行更新,这样,oomkiller便可以根据目标配置文件对应用程序进行控制。具体的说,oomkiller根据目标配置文件中的内容对应用程序进行控制。这样,便可以保证需要使用的应用程序不会被oomkiller终止运行。也就是说,用户可以通过oomkiller选择性终止运行或保持运行应用程序。

附图说明

图1为本发明基于linux系统控制应用程序的方法较佳实施例的流程图。

图2为本发明电子设备较佳实施例的结构框图。

具体实施方式

本发明提供基于linux系统控制应用程序的方法以及电子设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,一种基于linux系统控制应用程序的方法,其包括步骤:

s1、获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件;

s2、根据所述目标配置文件对oomkiller进行更新,并根据目标配置文件对应用程序进行控制。

通过本发明提供的方法,用户在获取oomkiller的配置文件后,便可以对配置文件进行编辑,从而得到目标配置文件。然后,将目标配置文件替换oomkiller中的配置文件,也就是说,将目标配置文件覆盖配置文件。这样,oomkiller在运行时,便可以根据目标配置文件的具体内容对应用程序进行控制。例如,终止运行应用程序a,维持运行应用程序b。

所述步骤s1中,所述配置文件是指一种文本文件,其格式为“txt”文件。用户可直接通过编辑工具对所述配置文件进行编辑,从而得到目标配置文件。

例如,配置文件为“a”,用户对配置文件进行编辑后得到的目标配置文件为“a1”。

优选的,通过控制组对所述配置文件进行编辑得到所述目标配置文件。

所述控制组是指cgroups,其中,cgroups是controlgroups的缩写,是linux内核提供的一种可以限制、记录、隔离进程组(processgroups)所使用的物理资源(如:cpu,memory,io等等)的机制。最初由google的工程师提出,后来被整合进linux内核。cgroups也是lxc为实现虚拟化所使用的资源管理手段,可以说没有cgroups就没有lxc。

用户可通过cgroups对配置文件进行编辑,同样可以得到目标配置文件。

优选的,通过psi对所述配置文件进行编辑得到所述目标配置文件。

其中,psi由节目关联表pat、条件接收表cat、节目映射表pmt和网络信息表nit组成。这些表会被插入到ts流中。psi信息是对单一ts流的描述,它是ts流的引导信息;psi信息指定了如何从一个携带多个节目的传输流中找到指定的节目。

同样的,用户可通过psi对配置文件进行编辑,从而得到目标配置文件。

优选的,用户还可同时通过psi和cgroups对配置文件进行编辑,得到目标配置文件。

优选的,所述步骤s1还包括:

预先定义内存阈值和cpu阈值,以及通过编辑配置文件将预设的应用程序加入规则名单。

由于linux系统实质上为一款软件,其必须通过内存这个载体才能运行,同样的,也必须接收cpu(处理器)发送的控制指令,由cpu进行控制。

所述内存阈值具体为百分占比。例如,定义的内存阈值为90%;定义的内存阈值为50%等等。

同样的,所述cpu阈值也为百分占比。例如,定义的cpu阈值为80%;定义的cpu阈值为60%等等。

通过编辑配置文件,可将部分应用程序或进程列入规则名单。具体的说,当应用程序或进程被列入规则名单时,oomkiller则可根据规则名单的定义对其进行控制。例如,定义,若执行规则名单中的应用程序或进程,则通过oomkiller停止运行对应的应用程序或进程。

更具体的说,用户还可以通过一些应用程序列入规则名单,例如,将一些游戏列入规则名单,这样,如果孩子玩游戏,那么oomkiller将会自动停止运行对应的游戏。

所述步骤s2中,用户可根据目标配置文件对oomkiller的配置文件进行替换,使得oomkiller中的配置文件变为目标配置文件。这样,oomkiller便可根据目标配置文件对应用程序或进程进行控制。例如,终止应用程序的运行等等。

优选的,所述步骤s2中,还包括:

将目标配置文件和预设的内存阈值和cpu阈值进行对比,得到对比结果,并根据对比结果对应用程序进行控制。

例如,内存阈值为50%,cpu阈值为50%,如果,目标配置文件的内容包括:内存值80%,cpu值70%。显然,对比结果为,目标配置文件中的内存值大于内存阈值且cpu值大于cpu阈值。

如果,目标配置文件的内容包括:内存值40%,cpu值70%。显然,对比结果为,目标配置文件中的内存值小于内存阈值且cpu值大于cpu阈值。

如果,目标配置文件的内容包括:内存值60%,cpu值40%。显然,对比结果为,目标配置文件中的内存值大于内存阈值且cpu值小于cpu阈值。

如果,目标配置文件的内容包括:内存值30%,cpu值30%。显然,对比结果为,目标配置文件中的内存值小于内存阈值且cpu值小于cpu阈值。

然后,根据得到的对比结果,通过oomkiller对应用程序或进程进行控制。例如,定义控制关系为:当应用程序的内存值或cpu值大于或等于预设的内存阈值或cpu阈值时,则终止应用程序的运行。

具体的,目标配置文件a中的内存值为50%,目标配置文件中的cpu值为30%,预设的内存阈值为60%,预设的cpu阈值为40%。显然,对比结果为:内存值小于内存阈值,cpu值小于cpu阈值,这样,根据定义的控制关系,便可继续运行目标配置文件a中对应应用程序。

例如,目标配置文件b中的内存值为70%,目标配置文件中的cpu值为30%,预设的内存阈值为60%,预设的cpu阈值为40%。显然,对比结果为:内存值大于内存阈值,cpu值小于cpu阈值,这样,根据定义的控制关系,终止运行目标配置文件b中对应应用程序。

例如,目标配置文件c中的内存值为40%,目标配置文件中的cpu值为30%,预设的内存阈值为50%,预设的cpu阈值为20%。显然,对比结果为:内存值小于内存阈值,cpu值大于cpu阈值,这样,根据定义的控制关系,终止运行目标配置文件c中对应应用程序。

再例如,目标配置文件d中的内存值为40%,目标配置文件中的cpu值为30%,预设的内存阈值为30%,预设的cpu阈值为20%。显然,对比结果为:内存值大于内存阈值,cpu值大于cpu阈值,这样,根据定义的控制关系,终止运行目标配置文件d中对应应用程序。

所述步骤s2具体包括:

当对比结果为目标配置文件大于预设的内存阈值和cpu进行对比,且应用程序属于所述规则名单中,则不对应用程序进行回收;

当对比结果为目标配置文件大于预设的内存阈值和cpu进行对比,且应用程序不属于所述规则名单中,则对应用程序进行回收;

当对比结果为目标配置文件小于或等于预设的内存阈值和cpu进行对比,应用程序处于所述规则名单中或不处于所述规则名单中,均不对应用程序进行回收。

本发明中的规则名单用于分类应用程序,具体的说,即使应用程序的cpu值或内存值大于预设的cpu阈值或大于预设的内存阈值,处于规则名单中的应用程序或进程能够保持运行,不会被终止运行。例如,预先将应用程序a、进程b和应用程序c加入规则名单,如果,应用程序a的内存值或cpu值大于所述内存阈值或cpu阈值,可通过所述oomkiller控制应用程序a继续运行。如果,应用程序d的内存值或cpu值大于所述内存阈值或cpu阈值,由于应用程序d不属于规则名单中,那么便通过所述oomkiller终止应用程序d运行。

下面通过具体的实施例,对本步骤做进一步的说明和解释。

预先将应用程序a和应用程序b加入规则名单中,且预设的内存阈值为50%,cpu阈值为50%。

当应用程序a的内存值为51%,且cpu值为51%时,虽然,应用程序a的内存值大于预设的内存阈值,并且应用程序a的cpu值大于预设的cpu阈值,但是应用程序a属于规则名单中,那么oomkiller不会终止运行应用程序a,可继续运行应用程序a。

当应用程序b的内存值为40%,且cpu值为49%时,由于应用程序b属于规则名单中,且那么oomkiller不会终止运行应用程序a,可继续运行应用程序a。

当应用程序d的内存值为40%,且cpu值为40%时,应用程序d不属于规则名单中,但是,应用程序d的内存值和cpu值均未超过预设的内存阈值或cpu阈值,那么oomkiller不会终止运行应用程序d,可继续运行应用程序d。也就是说,如果应用程序的内存值和cpu值均小于预设的内存阈值和预设的cpu阈值,无论应用程序是否在规则名单中,oomkiller均不会停止运行应用程序。

当应用程序e的内存值为51%,且cpu值为51%时,由于应用程序e不属于规则名单中,且应用程序d的内存值和cpu值均超过预设的内存阈值或cpu阈值,那么oomkiller将终止运行应用程序d。

这样,通过本发明提供的方法,用户可先编辑配置文件,得到目标配置文件,从而自由控制运行应用程序或终止运行应用程序。而不会出现,重要的应用程序,由于超过内存阈值或超过cpu阈值,被oomkiller终止运行的问题。

请参阅图2,本发明还提供一种电子设备10,其包括:

处理器110,适于实现各指令,以及

存储设备120,适于存储多条指令,所述指令适于由处理器加载并执行:

获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件;

根据所述目标配置文件对oomkiller进行更新,并根据目标配置文件对应用程序进行控制。

所述处理器110可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器还可以是任何传统处理器、微处理器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、任何其它这种配置。

存储设备120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于linux系统控制应用程序的方法对应的程序指令。处理器通过运行存储在存储设备中的非易失性软件程序、指令以及单元,从而执行基于linux系统控制应用程序的各种功能应用以及数据处理,即实现上述方法实施例中的基于linux系统控制应用程序的方法。

所述的电子设备10,其中,所述获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件的步骤中,通过控制组对所述配置文件进行编辑得到所述目标配置文件。

所述的电子设备10,其中,所述获取oomkiller的配置文件,并对配置文件进行编辑得到目标配置文件的步骤中,还包括:

预先定义内存阈值和cpu阈值,以及通过编辑配置文件将部分应用程序加入规则名单。

关于上述电子设备10的具体技术细节,已在上述步骤中详细论述,故此不做赘述。

本发明还提供一种计算机程序产品,其中,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的基于linux系统控制应用程序的方法。

本发明还提供一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的基于linux系统控制应用程序的方法。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1