Qt程序守护进程怎么实现
发表于:2025-12-06 作者:千家信息网编辑
千家信息网最后更新 2025年12月06日,本篇内容主要讲解"Qt程序守护进程怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt程序守护进程怎么实现"吧!一、前言没有任何人敢保证自己写的程序
千家信息网最后更新 2025年12月06日Qt程序守护进程怎么实现
本篇内容主要讲解"Qt程序守护进程怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt程序守护进程怎么实现"吧!
一、前言
没有任何人敢保证自己写的程序没有任何BUG,尤其是在商业项目中,程序量越大,复杂度越高,出错的概率越大,尤其是现场环境千差万别,和当初本地电脑测试环境很可能不一样,有很多特殊情况没有考虑到,如果需要保证程序7*24小时运行,则需要想一些办法能够让程序死了能够活过来,在嵌入式linux上,大部分会采用看门狗的形式来处理,程序打开看门狗驱动后,定时喂狗,一旦超过规定的时间,则硬件软复位等。这种方式相对来说比较可靠,如果需要在普通PC机上运行怎办呢?本篇文章提供一个软件实现守护进程的办法,原理就是udp通信,单独写个守护进程程序,专门负责检测主程序是否存在,不存在则启动。主程序只需要启动live类监听端口,收到hello就回复ok就行。 为了使得兼容任意程序,特意提炼出来共性,增加了多种设置。
主要功能:
可设置检测的程序名称。
可设置udp通信端口。
可设置超时次数。
自动记录已重启次数。
自动记录最后一次重启时间。
是否需要重新刷新桌面。
可重置当前重启次数和最后重启时间。
自动隐藏的托盘运行或者后台运行。
提供界面设置程序名称已经开启和暂停服务。
二、代码思路
AppLive::AppLive(QObject *parent) : QObject(parent){ udpServer = new QUdpSocket(this); QString name = qApp->applicationFilePath(); QStringList list = name.split("/"); appName = list.at(list.count() - 1).split(".").at(0);}void AppLive::readData(){ QByteArray tempData; do { tempData.resize(udpServer->pendingDatagramSize()); QHostAddress sender; quint16 senderPort; udpServer->readDatagram(tempData.data(), tempData.size(), &sender, &senderPort); QString data = QLatin1String(tempData); if (data == "hello") { udpServer->writeDatagram(QString("%1OK").arg(appName).toLatin1(), sender, senderPort); } } while (udpServer->hasPendingDatagrams());}bool AppLive::start(int port){ bool ok = udpServer->bind(port); if (ok) { connect(udpServer, SIGNAL(readyRead()), this, SLOT(readData())); qDebug() << TIMEMS << "Start AppLive Ok"; } return ok;}void AppLive::stop(){ udpServer->abort(); disconnect(udpServer, SIGNAL(readyRead()), this, SLOT(readData()));}三、效果图
到此,相信大家对"Qt程序守护进程怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
程序
进程
运行
时间
次数
可设
主程序
内容
办法
名称
环境
端口
保证
学习
检测
通信
复杂
实用
普通
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
达梦数据库导出实例
本届互联网博览会黑科技
地上地下服务器无法连接
数据库自主技术
左江科技中国网络安全芯片
软件开发招投标和验收
数据库安全性实验报告
创建数据库关系表失败1064
学校网络安全宣传活动小结
成都c语言软件开发价钱
我的世界服务器插件检测玩家踪迹
factiva新闻数据库
浙江智互联网科技有限公司
电脑玩穿越服务器连接断开
数据库中的实体集是指
网络安全教育平台登录深圳儿童
天龙八部荣耀版天外飞仙服务器
网络安全爱国手抄报
鸿星志金网络技术地址
学习网络技术需要英语
个人信息保护法 网络安全法
怎么删除数据库已经存在的服务名
新余节能软件开发多少钱
南瑞监控系统用的什么数据库
学校网络安全宣传活动小结
单位共享服务器怎么管理
郑州立德软件开发有限公司
网络安全技术谢辞
腾讯云香港服务器被入侵
linux服务器管理口退出