QProcess有一个signal叫做finished,具体定义如下:

void QProcess::finished(int exitCode, QProcess::ExitStatus exitStatus)

当进程结束的时候,该signal会被发射出去。exitCode就是进程的退出码,而exitStatus就是退出状态。

若在一个系统服务中,想保持另一个进程始终处于运行状态(比如某server),那么就可以connect这个finished信号。详细代码如下:

void keepProcessRunning()
{QProcess* p = new QProcess();QObject::connect(p, &QProcess::started, [] () {qDebug() << "Notepad.exe started!";});// Keep restarting if notepad.exe is finishedQObject::connect(p, static_cast<void(QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),[p] (int exitCode, QProcess::ExitStatus exitStatus) {qWarning() << "Notepad.exe was terminated! "<< "Exit code: " << exitCode<< "Exit status: " << exitStatus;// restartqWarning() << "Notepad.exe will restart... ";p->start();});p->start("notepad.exe");
}

以上代码中,先连接了started() signal,但这仅仅是为了打印一条语句“Notepad.exe started!”。然后连接了finished signal,其主要动作是再次调用p->start(). 但是注意,这里的start()是不带参数的。在两次connect结束之后,调用 p->start("notepad.exe"); 以启动笔记本程序。connect中的p->start()之所以没有参数,就是因为在它后面调用的start是有参数的。而再次start的话,是可以不再注明参数的。

利用QProcess::finished信号(signal)来保持目标程序始终运行相关推荐

  1. Linux下QProcess不产生finished信号、waitforfinished阻塞超时【defunct进程】

    文章目录 项目场景: 问题描述以及分析过程: defunct(僵尸进程): QProcess的实现: 理论原因: 尝试修改一: 第一次痛定思痛: 尝试修改二: 第二次修改能满足要求: 使用startd ...

  2. python练习笔记——利用信号signal处理僵尸进程

    1 signal处理僵尸进程的基于语法 利用信号signal处理僵尸进程的方法:signal(SIGCHLD,SIG_IGN),该方法也是第三种处理僵尸进程的方法. SIGCHLD:子进程状态改变后产 ...

  3. Linux异步之信号(signal)机制分析

    From:http://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html From:http://kenby.iteye.com/blog/11 ...

  4. Qt文档阅读笔记-Qt工作笔记QProcess::finished的解析与实例

    目录 官方解析 博主例子 阻塞主程序运行外部程序 使用本地事件循环不阻塞主程序运行外部程序 官方解析 void QProcess::finished(int exitCode, QProcess::E ...

  5. python信号处理教程_python 之信号Signal|python3教程|python入门|python教程

    https://www.xin3721.com/eschool/python.html 信号signal 是python进程间进行信号发送的一种机制,其原理是操作系统对进程的控制,是一种程序中断 一个 ...

  6. python 之信号Signal

    信号signal 是python进程间进行信号发送的一种机制,其原理是操作系统对进程的控制,是一种程序中断 一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号. 那么singanl到底有什么用 ...

  7. python signal模块作用_如何理解python中信号Signal?

    信号signal 是python进程间进行信号发送的一种机制,其原理是操作系统对进程的控制,是一种程序中断一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号. 那么singanl到底有什么用呢 ...

  8. [转载]qt信号signal和槽slot机制

    好东西! 原文地址:qt信号signal和槽slot机制作者:fox1987 信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注 ...

  9. Linux信号signal的介绍和示例

    如何让程序在后台运行 在之前的章节中,如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成.在程序运行的过程中,可以用Ctrl+c中止它. 在实际开发中,我们需要让程序在后 ...

最新文章

  1. JavaWeb实现文件上传下载功能实例解析
  2. 当中台遇上DDD,我们该如何设计微服务?
  3. python文件操作与路径
  4. 对称加密与非对称加密的区别_https原理及对称加密、非对称加密、数字证书、数字签名的含义...
  5. Twitter的分布式自增ID算法Snowflake实现分析及其Java、Php和Python版
  6. 使用Jersey跨服务器上传图片 报405 Method Not Allowed错误
  7. 从一个帖子看 所谓“知乎” 的真实水平
  8. Taro+react开发(88):大写px 控制样式
  9. 我的游测之路 | 揭秘游戏测试神秘面纱(一)
  10. 计算机考研8,计算机考研每日一练:第八天
  11. python如何创建txt_如何通过读取.txt文件为每个键创建包含多个“列表”的Python字典?...
  12. 快速开发框架工作笔记002---项目开发中整理_整合好的_Netty高并发处理快速开发框架_Netty快速开发框架
  13. win10你的电脑设备需要修复_cf挑战辅助w10蓝屏后若何用命令提示符修复
  14. 在oracle中 生成大规模数据 500万条 (使用导入数据方式 sqlldr 导入命令 *.ctl文件)
  15. const型指针区别 const * 和* const
  16. 第八章 (一)分治 练习题
  17. linux下的文件io编程实现文件的拷贝
  18. 计算机sci多少字,一篇sci综述一般写多少字
  19. android分享到人人网,人人网Android客户端体验
  20. 口令登陆创新的一些想法

热门文章

  1. 搜狗输入法中文状态下开启和关闭英文自动提示
  2. Delphi 汉字转拼音
  3. echarts折线图设置横向基准线/水平线
  4. python语音唤醒功能_百度语音识别 语音唤醒失败
  5. PHP中mq是什么,MQ是什么
  6. Vue 使用three.js实现简单全景图
  7. python训练自己中文语料库_word2vec+维基百科语料库训练中文模型
  8. Effective C++ 学习笔记 第七章:模板与泛型编程
  9. php搞笑证件,什么软件可以制作搞笑证件,多种搞笑证件制作
  10. Vue实现图片预览(放大缩小拖拽)纯手写