shell脚本子进程管理方法及系统的制作方法_2

文档序号:9672978阅读:来源:国知局
他shell脚本时修改被调用的其他shell脚本的具体作业流程图。
[0035]步骤S4021,判断当前shell脚本是否调用了其他shell脚本。如果当前shell脚本调用了其他shell脚本,则进入步骤S4022 ;如果该shell脚本没有调用其他shell脚本,则流程结束。
[0036]步骤S4022,修改上述被调用的shell脚本,而后返回步骤S4021,继续判断该被调用的shell脚本是否还调用了其他shell脚本。如此一层一层处理,直至所有被调用的shell脚本都进行了修改。具体修改位置及内容在步骤S402中已详细描述,这里不再赘述。
[0037]参阅图4所示,是本发明shell脚本子进程管理系统10的硬件架构图。该系统包括获取模块100、修改模块101、执行模块102、接收模块103及扫描模块104。
[0038]所述获取模块100用于得到欲管理的shell脚本。具体而言:所述获取模块得到Linux操作系统中需要管理的shell脚本。
[0039]所述修改模块101用于修改上述欲管理的shell脚本,及在该欲管理的shell脚本调用其他shell脚本时修改被调用的其他shell脚本。具体而言:
[0040]对上述欲管理的及被调用的shell脚本进行两处修改:
[0041]其一,在shell脚本前端加上获取shell脚本进程号的语句,使得shell脚本将其进程号发送给控制管理进程。
[0042]其二,在shell脚本末尾也加入程序语句,使得shell脚本结束前将该shell脚本所有的子进程的进程号发送给控制管理进程。
[0043]最后,在shell脚本进行修改的同时,对shell脚本进行备份,以便于在shell脚本执行结束之后,对shell脚本进行还原。
[0044]值得注意的是,本实施例对于shell脚本调用的其他shell脚本也进行修改,并且一层一层处理,使得所有被调用的shell脚本都进行修改。
[0045]所述执行模块102用于执行上述修改后的shell脚本。具体而言:
[0046]根据上述对shell脚本进行的两处修改,脚本执行到第一个修改处时,将进程号发送给控制管理进程。脚本执行到第二个修改处时,shell脚本会向控制管理进程发送本进程的所有子进程号。本实施例在shell脚本执行结束前获得子进程号,是为了避免shell进程执行完成之前,控制管理进程还没有来得及获取所有的子进程号,从而便于对shell脚本子进程进行管理。
[0047]所述接收模块103用于接收shell脚本发送的进程号及子进程号。具体而言:
[0048]控制管理进程在上述shell脚本执行到第一个修改处时,接收该shell脚本的进程号;在上述shell脚本执行到第二个修改处时,接收该shell脚本进程的所有子进程号。
[0049]所述扫描模块104用于根据上述接收的shell脚本的进程号及子进程号维护子进程树状图,并进行周期性扫描。具体而言:
[0050]从上述shell脚本执行开始,控制管理进程根据接收的shell脚本的进程号及子进程号维护一个子进程树状图(请参考图3),控制管理进程周期性实时检查该进程是否有新的子进程产生,并且实时更新子进程树状图。随着子进程的产生和销毁,子进程树状图实时变化。当shell脚本执行结束之后,如果还有其他后台进程在执行的话,也会继续维护所述子进程树状图。通过所述子进程树状图,能够很灵活地对所有的子进程进行管理,很方便地确定子进程的资源消耗情况及进行子进程删除等操作。
[0051]虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。
【主权项】
1.一种shell脚本子进程管理方法,其特征在于,该方法包括如下步骤: a.得到欲管理的shell脚本; b.修改上述欲管理的shell脚本,及在该欲管理的shell脚本调用其他shell脚本时修改被调用的其他shell脚本; c.执行上述修改后的shell脚本,发送该shell脚本的进程号及子进程号; d.接收上述发送的进程号及子进程号; e.根据上述接收的进程号及子进程号维护子进程树状图,并进行周期性扫描。2.如权利要求1所述的方法,其特征在于,所述步骤b中对shell脚本的修改包括: 在shell脚本前端加上获取shell脚本进程号的语句 '及 在shell脚本末尾也加入获取shell脚本子进程号的语句。3.如权利要求1所述的方法,其特征在于,所述的步骤b还包括: 在修改shell脚本的同时,对shell脚本进行备份。4.如权利要求1所述的方法,其特征在于,所述步骤b中在该欲管理的shell脚本调用其他shell脚本时修改被调用的其他shell脚本,具体包括: bl.判断当前shell脚本是否调用了其他shell脚本:如果当前shell脚本调用了其他shell脚本,则进入步骤b2,如果该shell脚本没有调用其他shell脚本,则流程结束;b2.修改上述被调用的shell脚本,而后返回步骤bl。5.如权利要求2所述的方法,其特征在于,所述的步骤e包括: 从所述shell脚本执行开始,根据接收的shell脚本的进程号及子进程号维护子进程树状图; 周期性实时检查该进程是否有新的子进程产生,并实时更新子进程树状图。6.—种shell脚本子进程管理系统,其特征在于,该系统包括获取模块、修改模块、执行模块、接收模块及扫描模块,其中: 所述获取模块用于得到欲管理的shell脚本; 所述修改模块用于修改上述欲管理的shell脚本,及在该欲管理的shell脚本调用其他shell脚本时修改被调用的其他shell脚本; 所述执行模块用于执行上述修改后的shell脚本,发送该shell脚本的进程号及子进程号; 所述接收模块用于接收上述发送的进程号及子进程号; 所述扫描模块用于根据上述接收的进程号及子进程号维护子进程树状图,并进行周期性扫描。7.如权利要求6所述的系统,其特征在于,所述的修改模块对shell脚本的修改包括: 在shell脚本前端加上获取shell脚本进程号的语句;及 在shell脚本末尾也加入获取shell脚本子进程号的语句。8.如权利要求6所述的系统,其特征在于,所述的修改模块还用于: 在修改shell脚本的同时,对shell脚本进行备份。9.如权利要求7所述的系统,其特征在于,所述的扫描模块具体用于: 从所述shell脚本执行开始,根据接收的shell脚本的进程号及子进程号维护子进程树状图;周期性实时检查该进程是否有新的子进程产生,并实时更新子进程树状图。
【专利摘要】本发明涉及一种shell脚本子进程管理方法,包括:得到欲管理的shell脚本;修改上述欲管理的shell脚本,及在该欲管理的shell脚本调用其他shell脚本时修改被调用的其他shell脚本;执行上述修改后的shell脚本,发送该shell脚本的进程号及子进程号;接收上述发送的进程号及子进程号;根据上述接收的进程号及子进程号维护子进程树状图,并进行周期性扫描。本发明还涉及一种shell脚本子进程管理系统。本发明解决了shell脚本子进程的管理和控制问题,能够对shell脚本所消耗的资源情况进行实时监控,彻底进行资源回收。
【IPC分类】G06F9/48
【公开号】CN105446805
【申请号】CN201410421138
【发明人】曾经纬, 贝振东, 喻之斌, 须成忠
【申请人】中国科学院深圳先进技术研究院
【公开日】2016年3月30日
【申请日】2014年8月25日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1