LINUX系统中应用进程命令处理的方法及装置制造方法及图纸

技术编号:9694585 阅读:104 留言:0更新日期:2014-02-21 00:46
本发明专利技术提供了一种LINUX系统中应用进程命令处理的方法及装置,在LINUX系统中的应用进程中增加线程并生成shell模块,并且在所述LINUX系统中引入shell进程,所述shell进程与应用进程中的shell模块进行交互,所述的方法包括:所述shell进程预置shell进程命令,并创建命令共享文件;所述shell进程获取所述LINUX系统的串口输入的命令字符串;所述shell进程判断所述命令字符串是否为所述shell进程命令;若是,则所述shell进程解析并执行所述命令字符串;若否,则所述shell进程将所述命令字符串写入所述命令共享文件,发送信号到指定的应用进程中的shell模块中;所述shell模块用于在接收到所述信号后从所述命令共享文件获取并执行所述命令字符串。本发明专利技术可以在不影响应用进程正常运行的情况下随时查看应用进程的执行情况。

【技术实现步骤摘要】
LINUX系统中应用进程命令处理的方法及装置
本专利技术涉及LINUX
,特别是涉及一种LINUX系统中应用进程命令处理的方法及装置。
技术介绍
在具体实现中,用户可以通过以下三种方式获得应用进程的执行情况。1)GDB调试查看运行状态GDB是GNU开源组织发布的一个强大的UNIX系统下的应用进程调试工具,也是LINUX系统默认的调试器,可以应用于调试嵌入式实时系统。GDB有两种方法可以调试跟踪正在运行的应用进程:一种是在LINUX下用ps命令查看正在运行应用进程的其进程的标识PID,再用GDBPID格式挂接正在运行的应用进程;一种是先用GDB关联上源代码,再用GDB进行调试,在GDB中用attach命令来挂接进程的PID。并用detach命令来取消挂接的进程。2)应用进程定时主动上报执行状态在应用进程设计时,增加定时上报功能,将应用进程执行状态的关键信息定时输出。上报接收端接收来自下游终端的定时任务信息,并将该任务信息以文本的形式进行存储,同时将该定时任务加入到定时任务队列中去,并在指定的时间内执行相应的定时任务,在执行后将结果写入对应文件,以备后续用户查询。3)远端模拟shell执行,将执行结果返回至终端远端模拟shell是一种类似于应用Telnet协议的文本方式交互的调试手段。在远端计算机上通过客户终端应用进程将包含命令信息的文本文件内容发送至目标执行终端,目标执行终端将其转换为函数调用,执行完后将结果以字符串的方式再返回给客户终端。该方案要求中间的节点通信必须畅通,如有通信异常则无法获取到信息。然而,上述的三种获得应用进程的执行情况的方式存在以下缺陷:1)GDB调试查看运行状态会打断应用进程的正常执行GDB调试应用进程中,必须暂停应用进程的运行。虽然GDB可以方便地暂停应用进程的运行,以便于查看应用进程运行时的变量,以及应用进程运行时的流程,但是这种打断应用进程运行进行定位的方法,不能适用于要求应用进程持续运行的应用场景。2)应用进程定时主动上报执行状态不能满足实时性需求应用进程定时主动上报执行状态需耗费一定的系统资源,在系统资源有限的情况下有可能造成资源的浪费,不能将有限的资源用于业务中,甚至在系统负荷较大的情况下影响到正常的业务。此外,定时上报的资源不一定能够满足定位问题的需求,或者在偶尔的情况下不一定能够及时上报异常,造成有用信息的遗漏以增加定位和解决问题的周期。3)远端模拟shell依赖于外部通信远端模拟shell通过通信将shell命令下发至所需的终端,要求各个中间节点通信完全正常,在通信不通的情况下该方法无效。此外,需用户注册指定的shell命令才能够使用,且注册命令个数有限制,在紧急情况下如果没有注册需要执行的命令则无能为力。因此,本领域技术人员迫切需要解决的问题之一在于,提出一种LINUX系统中应用进程命令处理的方法及装置,可以在不影响应用进程正常运行的情况下随时查看应用进程的执行情况。
技术实现思路
本专利技术所要解决的技术问题是提供一种LINUX系统中应用进程命令处理的方法及装置,用以在不影响应用进程正常运行的情况下随时查看应用进程的执行情况。为了解决上述问题,本专利技术公开了一种LINUX系统中应用进程命令处理的方法,在LINUX系统中的应用进程中增加线程并生成shell模块,并且在所述LINUX系统中引入shell进程,所述shell进程与应用进程中的shell模块进行交互,所述的方法包括:所述shell进程预置shell进程命令,并创建命令共享文件;所述shell进程获取所述LINUX系统的串口输入的命令字符串;所述shell进程判断所述命令字符串是否为所述shell进程命令;若是,则所述shell进程解析并执行所述命令字符串;若否,则所述shell进程将所述命令字符串写入所述命令共享文件,发送信号到指定的应用进程中的shell模块中;所述shell模块用于在接收到所述信号后从所述命令共享文件获取并执行所述命令字符串。优选地,在所述Shell进程捕获所述LINUX系统的串口输入的命令字符串的步骤之前,还包括:所述shell进程读取预置的进程号共享文件;所述进程号共享文件中存储有应用进程的进程标识;所述shell进程将所述命令字符串写入所述命令共享文件,发送信号到指定的Shell模块的步骤包括:所述shell进程依据所述命令字符串从所述进程号共享文件中获取对应的进程标识;所述shell进程发送信号至所述进程标识对应的应用进程的shell模块中。优选地,所述shell进程命令包括shell进程退出命令及shell进程切换命令。本专利技术实施例还公开了一种LINUX系统中应用进程命令处理的方法,在LINUX系统中的应用进程中增加线程并生成shell模块,并且在所述LINUX系统中引入shell进程,所述shell进程与应用进程中的shell模块进行交互,所述的方法包括:所述shell模块初始化挂接信号处理函数,当所述shell进程从所述LINUX系统的串口输入的命令字符串时,接收到所述shell进程发送的信号并设置命令标识;当所述shell模块扫描到所述命令标识时,从命令共享文件获取命令字符串;所述命令共享文件由所述shell进程创建,所述命令字符串由所述shell进程获取到所述命令共享文件;所述shell模块解析并执行所述命令字符串。优选地,所述应用进程具有进程标识,在所述shell模块扫描到命令标识的步骤之前,还包括:所述shell模块将所述进程标识记录到预置的进程号共享文件;所述shell模块初始化申请内存;所述shell模块读取所述应用进程编译时生成的MAP命令文件,并将所述MAP命令文件存储于所述申请内存中。优选地,所述MAP命令文件中包括命令名及对应的函数地址;所述命令字符串中包括命令名及其对应的参数;所述shell模块解析并执行所述命令字符串的步骤包括:所述shell模块依据命令名在所述MAP命令文件中查找到所述命令名对应的函数地址;所述shell模块调用所述函数地址中的函数,并依据所述参数执行所述函数。优选地,在所述shell模块解析并执行所述命令字符串的步骤之后,还包括:所述shell模块清空所述命令标识。本专利技术实施例还公开了一种LINUX系统中应用进程命令处理的装置,在LINUX系统中的应用进程中增加线程并生成shell模块,并且在所述LINUX系统中引入shell进程,所述shell进程与应用进程中的shell模块进行交互,所述的装置包括:位于shell进程的预置模块,用于预置shell进程命令,并创建命令共享文件;位于shell进程的获取模块,用于获取所述LINUX系统的串口输入的命令字符串;位于shell进程的判断模块,用于判断所述命令字符串是否为所述shell进程命令;若是,则调用位于shell进程的执行模块,若否,则调用位于shell进程的发送模块;位于shell进程的执行模块,用于解析并执行所述命令字符串;位于shell进程的发送模块,用于将所述命令字符串写入所述命令共享文件,发送信号到指定的应用进程中的shell模块中;所述shell模块用于在接收到所述信号后从所述命令共享文件获取并执行所述命令字符串。优选地,所述的装置还包括:位于shell本文档来自技高网
...
LINUX系统中应用进程命令处理的方法及装置

【技术保护点】
一种LINUX系统中应用进程命令处理的方法,其特征在于,在LINUX系统中的应用进程中增加线程并生成shell模块,并且在所述LINUX系统中引入shell进程,所述shell进程与应用进程中的shell模块进行交互,所述的方法包括:所述shell进程预置shell进程命令,并创建命令共享文件;所述shell进程获取所述LINUX系统的串口输入的命令字符串;所述shell进程判断所述命令字符串是否为所述shell进程命令;若是,则所述shell进程解析并执行所述命令字符串;若否,则所述shell进程将所述命令字符串写入所述命令共享文件,发送信号到指定的应用进程中的shell模块中;所述shell模块用于在接收到所述信号后从所述命令共享文件获取并执行所述命令字符串。

【技术特征摘要】
1.一种LINUX系统中应用进程命令处理的方法,其特征在于,在LINUX系统中的应用进程中增加线程并生成shell模块,并且在所述LINUX系统中引入shell进程,所述shell进程与应用进程中的shell模块进行交互,所述的方法包括:所述shell进程预置shell进程命令,并创建命令共享文件;所述shell进程获取所述LINUX系统的串口输入的命令字符串;所述shell进程判断所述命令字符串是否为所述shell进程命令;若是,则所述shell进程解析并执行所述命令字符串;若否,则所述shell进程将所述命令字符串写入所述命令共享文件,发送信号到指定的应用进程中的shell模块中;所述shell模块用于在接收到所述信号后从所述命令共享文件获取并执行所述命令字符串。2.根据权利要求1所述的方法,其特征在于,在所述Shell进程捕获所述LINUX系统的串口输入的命令字符串的步骤之前,还包括:所述shell进程读取预置的进程号共享文件;所述进程号共享文件中存储有应用进程的进程标识;所述shell进程将所述命令字符串写入所述命令共享文件,发送信号到指定的Shell模块的步骤包括:所述shell进程依据所述命令字符串从所述进程号共享文件中获取对应的进程标识;所述shell进程发送信号至所述进程标识对应的应用进程的shell模块中。3.根据权利要求1所述的方法,其特征在于,所述shell进程命令包括shell进程退出命令及shell进程切换命令。4.一种LINUX系统中应用进程命令处理的方法,其特征在于,在LINUX系统中的应用进程中增加线程并生成shell模块,并且在所述LINUX系统中引入shell进程,所述shell进程与应用进程中的shell模块进行交互,所述的方法包括:所述shell模块初始化挂接信号处理函数,当所述shell进程从所述LINUX系统的串口输入的命令字符串时,接收到所述shell进程发送的信号并设置命令标识;当所述shell模块扫描到所述命令标识时,从命令共享文件获取命令字符串;所述命令共享文件由所述shell进程创建,所述命令字符串由所述shell进程获取到所述命令共享文件;所述shell模块解析并执行所述命令字符串。5.根据权利要求4所述的方法,其特征在于,所述应用进程具有进程标识,在所述shell模块扫描到命令标识的步骤之前,还包括:所述shell模块将所述进程标识记录到预置的进程号共享文件;所述shell模块初始化申请内存;所述shell模块读取所述应用进程编译时生成的MAP命令文件,并将所述MAP命令文件存储于所述申请内存中。6.根据权利要求5所述的方法,其特征在于,所述MAP命令文件中包括命令名及对应的函数地址;所述命令字符串中包括命令名及其对应的参数;所述shell模块解析并执行所述命令字符串的步骤包括:所述shell模块依据命令名在所述MAP命令文件中查找到所述命令名对应的函数地址;所述shell模块调用所述函数地址中的函数,并依据所述参数执行所述函数。7.根据权利要求4所述的方法,其特征在于,在所述shell模块解析并执行所述命令字符串的步骤之后,还包括:所述shell模块清空所述命令标识。8.一种LINUX系统中应用...

【专利技术属性】
技术研发人员:王丽娜蔡蕾
申请(专利权)人:大唐移动通信设备有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1