一种基于QtDBus的软件看门狗实现方法与流程
未命名
07-20
阅读:77
评论:0
一种基于qtdbus的软件看门狗实现方法
技术领域
1.本发明属于软件看门狗技术领域,涉及轨道交通行业显示器中应用的软件看门狗,具体为涉及一种基于qtdbus的软件看门狗实现方法。
背景技术:
2.轨道交通行业的显示器上的应用程序通常需要一个软件看门狗程序进行监控,当应用程序出现异常而退出时,软件看门狗程序可以及时重启应用程序,以确保应用程序能够正常运行,避免出现显示器无法使用的情况。
3.目前,列车上显示器中的软件看门狗程序在应用程序出现异常时,一般只负责重启应用程序,但是不能够为后续的问题解决提供有效的帮助。由于轨道交通行其特殊性,在应用程序出现问题时不能立刻排查,只有在列车运行结束后在排查问题,此时需要花费大量时间在故障复现上,影响排故效率。
技术实现要素:
4.为了对软件看门狗程序监控的应用程序异常退出后,方便技术人快速定位问题,节省排故时问题复现的时间,本发明提供了一种基于qtdbus的软件看门狗实现方法。
5.实现发明目的的技术方案如下:一种基于qtdbus的软件看门狗实现方法,包括以下步骤:
6.上电时,应用程序基于守护进程qtdbus与软件看门狗经实时通信;
7.所述应用程序输出日志文件给所述软件看门狗;
8.所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:
9.所述应用程序正常,则继续执行监控过程;
10.所述应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。
11.在一个实施例中,所述应用程序输出日志文件给所述软件看门狗的方法为:所述应用程序依照设定周期a调用所述软件看门狗的心跳接口,将日志文件发送给所述软件看门狗。
12.在一个实施例中,所述应用程序每调用一次所述软件看门狗的心跳接口,则所述软件看门狗的心跳计数器加1。
13.在一个实施例中,所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:
14.所述软件看门狗依照设定周期b查看所述心跳计数器,比较当前心跳计数器数值与在前心跳计数器数值,其中,周期b的长度为n个周期a的长度,n为≥1的整数;
15.若当前心跳计数器数值与在前心跳计数器数值之间的差值为n时,则判断所述应用程序正常,并删除保存的日志文件;
16.若当前心跳计数器数值与在前心跳计数器数值之间的差值<n时,则判断所述应
用程序异常。
17.在一个实施例中,所述软件看门狗内包括正常目录和故障目录,所述正常目录存储有正常日志文件,所述故障目录存储有所述应用程序重启前由所述正常目录转移的日志文件。
18.与现有技术相比,本发明的有益效果是:本发明设计的基于qtdbus的软件看门狗实现方法,其软件看门狗程序与应用程序是两个独立程序,应用程序出现异常而退出时,不会影响看门狗程序的执行。看门狗程序可以确保在应用程序发生异常时保存这次运行日志,并且只保存有效的故障日志,正常运行的日志则会在机器上电时删除,可以有效的减少硬盘空间。
19.后期排故时,技术人员只需要下载故障目录下的日志文件便可以进行问题排查,节省大量问题复现的时间,在解决偶发性的问题时,能够有效提高问题解决的效率。
附图说明
20.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明为了更清楚地说明本发明实施例或现有技术中的技术方案,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为具体实施方式中基于qtdbus的软件看门狗实现方法的流程框图。
具体实施方式
22.下面结合具体实施例来进一步描述本发明,本发明的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本发明的范围构成任何限制。本领域技术人员应该理解的是,在不偏离本发明的精神和范围下可以对本发明技术方案的细节和形式进行修改或替换,但这些修改和替换均落入本发明的保护范围内。
23.在本实施例的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明创造的限制。
24.此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
25.本具体实施方式提供了一种基于qtdbus的软件看门狗实现方法,参见图1所示,软件看门狗实现方法包括以下步骤:
26.s1、上电时,应用程序基于守护进程qtdbus与软件看门狗经实时通信。
27.qtdbus,是一种三层架构的高级的进程间通信系统,其功能已涵盖进程间通信的所有需求,包括接口层、总线层、包装层。接口层由函数库libdbus提供,进程可通过该库使用d-bus的能力;总线层实际上是由d-bus总线守护进程提供的,负责进程间的消息路由
和传递;包装层是一系列基于特定应用程序框架的wrapper库。
28.此时,应用程序(如图1中所示的client)作为守护进程qtdbus的客户端,软件看门狗作为守护进程qtdbus的服务端。
29.s2、所述应用程序输出日志文件给所述软件看门狗。
30.本步骤中,所述应用程序输出日志文件给所述软件看门狗的方法为:所述应用程序依照设定周期a调用所述软件看门狗的心跳接口,将日志文件发送给所述软件看门狗。
31.例如,可以将周期a设置为0.5s,即每个0.5s应用程序调用一次软件看门狗的心跳接口(sendheartmsg),将其日志文件发动给软件看门狗进行存储。
32.在一个实施例中,所述应用程序每调用一次所述软件看门狗的心跳接口,则所述软件看门狗的心跳计数器加1。
33.s3、所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:所述应用程序正常,则继续执行监控过程;所述应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。
34.在一个实施例中,所述软件看门狗内包括正常目录和故障目录,所述正常目录存储有正常日志文件,所述故障目录存储有所述应用程序重启前由所述正常目录转移的日志文件。
35.在一个实施例中,所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:
36.s31、所述软件看门狗依照设定周期b查看所述心跳计数器,比较当前心跳计数器数值与在前心跳计数器数值,其中,周期b的长度为n个周期a的长度,n为≥1的整数;
37.s32、若当前心跳计数器数值与在前心跳计数器数值之间的差值为n时,则判断所述应用程序正常,并删除保存的日志文件;
38.s33、若当前心跳计数器数值与在前心跳计数器数值之间的差值<n时,则判断所述应用程序异常。
39.例如,当周期a为0.5s时,周期b可以选择2s,即周期b有4个长度的周期a,软件看门狗每隔2s查看一次心跳计数器数值变化。
40.本具体实施方式公开的基于qtdbus的软件看门狗实现方法,看门狗程序可以确保在应用程序发生异常时保存这次运行日志,并且只保存有效的故障日志,正常运行的日志则会在机器上电时删除,可以有效的减少硬盘空间。后期排故时,技术人员只需要下载故障目录下的日志文件便可以进行问题排查,节省大量问题复现的时间,在解决偶发性的问题时,能够有效提高问题解决的效率。
41.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
42.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
技术特征:
1.一种基于qtdbus的软件看门狗实现方法,其特征在于,包括以下步骤:上电时,应用程序基于守护进程qtdbus与软件看门狗经实时通信;所述应用程序输出日志文件给所述软件看门狗;所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:所述应用程序正常,则继续执行监控过程;所述应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。2.根据权利要求1所述的基于qtdbus的软件看门狗实现方法,其特征在于:所述应用程序输出日志文件给所述软件看门狗的方法为:所述应用程序依照设定周期a调用所述软件看门狗的心跳接口,将日志文件发送给所述软件看门狗。3.根据权利要求2所述的基于qtdbus的软件看门狗实现方法,其特征在于:所述应用程序每调用一次所述软件看门狗的心跳接口,则所述软件看门狗的心跳计数器加1。4.根据权利要求3所述的基于qtdbus的软件看门狗实现方法,其特征在于:所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,包括:所述软件看门狗依照设定周期b查看所述心跳计数器,比较当前心跳计数器数值与在前心跳计数器数值,其中,周期b的长度为n个周期a的长度,n为≥1的整数;若当前心跳计数器数值与在前心跳计数器数值之间的差值为n时,则判断所述应用程序正常,并删除保存的日志文件;若当前心跳计数器数值与在前心跳计数器数值之间的差值<n时,则判断所述应用程序异常。5.根据权利要求1~4任一项所述的基于qtdbus的软件看门狗实现方法,其特征在于:所述软件看门狗内包括正常目录和故障目录,所述正常目录存储有正常日志文件,所述故障目录存储有所述应用程序重启前由所述正常目录转移的日志文件。
技术总结
本发明提供了一种基于QtDBus的软件看门狗实现方法,包括上电时,应用程序基于守护进程QtDBus与软件看门狗经实时通信;所述应用程序输出日志文件给所述软件看门狗;所述软件看门狗对所述应用程序进行监控,依据监控结果判断所述应用程序是否正常,应用程序正常,则继续执行监控过程;应用程序异常,则将日志文件存储至故障目录,并重启所述应用程序。本发明的方法看门狗程序可以确保在应用程序发生异常时保存这次运行日志,并且只保存有效的故障日志,可以有效的减少硬盘空间。后期排故时,只需要下载故障目录下的日志文件便可以进行问题排查,节省大量问题复现的时间,在解决偶发性的问题时,能够有效提高问题解决的效率。能够有效提高问题解决的效率。能够有效提高问题解决的效率。
技术研发人员:马标 苗仲海 杨亮
受保护的技术使用者:苏州长风航空电子有限公司
技术研发日:2022.12.28
技术公布日:2023/7/19
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
