Qt程序守护进程怎么实现
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容主要讲解"Qt程序守护进程怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt程序守护进程怎么实现"吧!一、前言没有任何人敢保证自己写的程序
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
网络安全一年级的简单的画
公众号开发数据库查询
软件开发项目应对风险措施
爱丁堡大学网络安全专业
软件开发测试讲师
cod18战网俄区连不上服务器
政务信息共享网络安全
网络安全黑板报粉笔画图片
网络安全知识专题学习会议
软件开发35岁
云加速网络技术
鸡之家系统软件开发
公司网络安全的守护者
数据库直连安全
mc的服务器如何升级版本
梦幻西游服务器和梦三国
服务器管理面板 那个好用
牛客网 网络安全
芜湖萝卜网络技术公司
上海恰当网络技术中心
戴尔服务器在哪能购买
数据库符号 代表什么意思
网络安全法最新对比
三菱软件开发界面
东莞软件开发驻场哪家正规
网络安全模型的原理及功能
中软服务器
各个软件开发公司报价差别
审计是数据库安全性
宜兴购买计算机网络技术推广设备