一种基于QtDBus的软件看门狗实现方法技术

技术编号:38209752 阅读:14 留言:0更新日期:2023-07-21 17:00
本发明专利技术提供了一种基于QtDBus的软件看门狗实现方法,包括上电时,应用程序基于守护进程QtDBus与软件看门狗经实时通信;所述应用程序输出日志文件给所述软件看门狗;所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,应用程序正常,则继续执行监控过程;应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。本发明专利技术的方法看门狗程序可以确保在应用程序发生异常时保存这次运行日志,并且只保存有效的故障日志,可以有效的减少硬盘空间。后期排故时,只需要下载故障目录下的日志文件便可以进行问题排查,节省大量问题复现的时间,在解决偶发性的问题时,能够有效提高问题解决的效率。能够有效提高问题解决的效率。能够有效提高问题解决的效率。

【技术实现步骤摘要】
一种基于QtDBus的软件看门狗实现方法


[0001]本专利技术属于软件看门狗
,涉及轨道交通行业显示器中应用的软件看门狗,具体为涉及一种基于QtDBus的软件看门狗实现方法。

技术介绍

[0002]轨道交通行业的显示器上的应用程序通常需要一个软件看门狗程序进行监控,当应用程序出现异常而退出时,软件看门狗程序可以及时重启应用程序,以确保应用程序能够正常运行,避免出现显示器无法使用的情况。
[0003]目前,列车上显示器中的软件看门狗程序在应用程序出现异常时,一般只负责重启应用程序,但是不能够为后续的问题解决提供有效的帮助。由于轨道交通行其特殊性,在应用程序出现问题时不能立刻排查,只有在列车运行结束后在排查问题,此时需要花费大量时间在故障复现上,影响排故效率。

技术实现思路

[0004]为了对软件看门狗程序监控的应用程序异常退出后,方便技术人快速定位问题,节省排故时问题复现的时间,本专利技术提供了一种基于QtDBus的软件看门狗实现方法。
[0005]实现专利技术目的的技术方案如下:一种基于QtDBus的软件看门狗实现方法,包括以下步骤:
[0006]上电时,应用程序基于守护进程QtDBus与软件看门狗经实时通信;
[0007]所述应用程序输出日志文件给所述软件看门狗;
[0008]所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:
[0009]所述应用程序正常,则继续执行监控过程;
[0010]所述应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。
[0011]在一个实施例中,所述应用程序输出日志文件给所述软件看门狗的方法为:所述应用程序依照设定周期a调用所述软件看门狗的心跳接口,将日志文件发送给所述软件看门狗。
[0012]在一个实施例中,所述应用程序每调用一次所述软件看门狗的心跳接口,则所述软件看门狗的心跳计数器加1。
[0013]在一个实施例中,所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:
[0014]所述软件看门狗依照设定周期b查看所述心跳计数器,比较当前心跳计数器数值与在前心跳计数器数值,其中,周期b的长度为n个周期a的长度,n为≥1的整数;
[0015]若当前心跳计数器数值与在前心跳计数器数值之间的差值为n时,则判断所述应用程序正常,并删除保存的日志文件;
[0016]若当前心跳计数器数值与在前心跳计数器数值之间的差值<n时,则判断所述应
用程序异常。
[0017]在一个实施例中,所述软件看门狗内包括正常目录和故障目录,所述正常目录存储有正常日志文件,所述故障目录存储有所述应用程序重启前由所述正常目录转移的日志文件。
[0018]与现有技术相比,本专利技术的有益效果是:本专利技术设计的基于QtDBus的软件看门狗实现方法,其软件看门狗程序与应用程序是两个独立程序,应用程序出现异常而退出时,不会影响看门狗程序的执行。看门狗程序可以确保在应用程序发生异常时保存这次运行日志,并且只保存有效的故障日志,正常运行的日志则会在机器上电时删除,可以有效的减少硬盘空间。
[0019]后期排故时,技术人员只需要下载故障目录下的日志文件便可以进行问题排查,节省大量问题复现的时间,在解决偶发性的问题时,能够有效提高问题解决的效率。
附图说明
[0020]为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本专利技术为了更清楚地说明本专利技术实施例或现有技术中的技术方案,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为具体实施方式中基于QtDBus的软件看门狗实现方法的流程框图。
具体实施方式
[0022]下面结合具体实施例来进一步描述本专利技术,本专利技术的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本专利技术的范围构成任何限制。本领域技术人员应该理解的是,在不偏离本专利技术的精神和范围下可以对本专利技术技术方案的细节和形式进行修改或替换,但这些修改和替换均落入本专利技术的保护范围内。
[0023]在本实施例的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术创造的限制。
[0024]此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本专利技术创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0025]本具体实施方式提供了一种基于QtDBus的软件看门狗实现方法,参见图1所示,软件看门狗实现方法包括以下步骤:
[0026]S1、上电时,应用程序基于守护进程QtDBus与软件看门狗经实时通信。
[0027]QtDBus,是一种三层架构的高级的进程间通信系统,其功能已涵盖进程间通信的所有需求,包括接口层、总线层、包装层。接口层由函数库libdbus提供,进程可通过该库使用D-Bus的能力;总线层实际上是由D-Bus总线守护进程提供的,负责进程间的消息路由
和传递;包装层是一系列基于特定应用程序框架的Wrapper库。
[0028]此时,应用程序(如图1中所示的Client)作为守护进程QtDBus的客户端,软件看门狗作为守护进程QtDBus的服务端。
[0029]S2、所述应用程序输出日志文件给所述软件看门狗。
[0030]本步骤中,所述应用程序输出日志文件给所述软件看门狗的方法为:所述应用程序依照设定周期a调用所述软件看门狗的心跳接口,将日志文件发送给所述软件看门狗。
[0031]例如,可以将周期a设置为0.5s,即每个0.5s应用程序调用一次软件看门狗的心跳接口(sendHeartMsg),将其日志文件发动给软件看门狗进行存储。
[0032]在一个实施例中,所述应用程序每调用一次所述软件看门狗的心跳接口,则所述软件看门狗的心跳计数器加1。
[0033]S3、所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:所述应用程序正常,则继续执行监控过程;所述应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。
[0034]在一个实施例中,所述软件看门狗内包括正常目录和故障目录,所述正常目录存储有正常日志文件,所述故障目录存储有所述应用程序重启前由所述正常目录转移的日志文件。
[0035]在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于QtDBus的软件看门狗实现方法,其特征在于,包括以下步骤:上电时,应用程序基于守护进程QtDBus与软件看门狗经实时通信;所述应用程序输出日志文件给所述软件看门狗;所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:所述应用程序正常,则继续执行监控过程;所述应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。2.根据权利要求1所述的基于QtDBus的软件看门狗实现方法,其特征在于:所述应用程序输出日志文件给所述软件看门狗的方法为:所述应用程序依照设定周期a调用所述软件看门狗的心跳接口,将日志文件发送给所述软件看门狗。3.根据权利要求2所述的基于QtDBus的软件看门狗实现方法,其特征在于:所述应用程序每调用一次所述软件看门狗的心跳接口,则所述软件看门狗的心跳计数器加...

【专利技术属性】
技术研发人员:马标苗仲海杨亮
申请(专利权)人:苏州长风航空电子有限公司
类型:发明
国别省市:

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

1