Qt编写守护进程

时间:2022-03-22 08:42:46
【文件属性】:
文件名称:Qt编写守护进程
文件大小:64KB
文件格式:ZIP
更新时间:2022-03-22 08:42:46
Qt 守护进程 没有任何人敢保证自己写的程序没有任何BUG,尤其是在商业项目中,程序量越大,复杂度越高,出错的概率越大,尤其是现场环境千差万别,和当初本地电脑测试环境很可能不一样,有很多特殊情况没有考虑到,如果需要保证程序7*24小时运行,则需要想一些办法能够让程序死了能够活过来,在嵌入式linux上,大部分会采用看门狗的形式来处理,程序打开看门狗驱动后,定时喂狗,一旦超过规定的时间,则硬件软复位等。这种方式相对来说比较可靠,如果需要在普通PC机上运行怎办呢?本篇文章提供一个软件实现守护进程的办法,原理就是udp通信,单独写个守护进程程序,专门负责检测主程序是否存在,不存在则启动。主程序只需要启动live类监听端口,收到hello就回复ok就行。 为了使得兼容任意程序,特意提炼出来共性,增加了多种设置。 1:可设置检测的程序名称。 2:可设置udp通信端口。 3:可设置超时次数。 4:自动记录已重启次数。 5:自动记录最后一次重启时间。 6:是否需要重新刷新桌面。 7:可重置当前重启次数和最后重启时间。 8:自动隐藏的托盘运行或者后台运行。 9:提供界面设置程序名称已经开启和暂停服务。
【文件预览】:
live
----livedemo()
--------applive.cpp(2KB)
--------frmmain.ui(495B)
--------applive.h(446B)
--------frmmain.h(284B)
--------livedemo.pro.user(23KB)
--------frmmain.cpp(201B)
--------main.cpp(880B)
--------livedemo.pro(570B)
----live.pro(82B)
----snap()
--------QQ截图20190302141129.png(16KB)
--------QQ截图20190302141124.png(11KB)
--------QQ截图20190302141147.png(13KB)
----livetool()
--------trayicon.h(2KB)
--------main.ico(66KB)
--------app.cpp(2KB)
--------frmmain.ui(3KB)
--------main.qrc(92B)
--------livetool.pro(595B)
--------frmmain.h(833B)
--------frmmain.cpp(5KB)
--------main.cpp(1KB)
--------trayicon.cpp(2KB)
--------livetool.pro.user(29KB)
--------app.h(849B)

网友评论

  • 一般,还可以吧 能起到守护的作用
  • 代码比较工整,但是守护进程这么写意义不大,核心就是用qprocess去杀、起进程,然后两个demo间用udp通讯,感觉通讯多此一举,可直接在起进程时获取id,记录下来管理起来。