QProcess::startDetached shell 在父进程死亡时被杀死,如果父进程是一个 systemd 服务

Posted

技术标签:

【中文标题】QProcess::startDetached shell 在父进程死亡时被杀死,如果父进程是一个 systemd 服务【英文标题】:QProcess::startDetached shell is killed when the parent died if the parent is a systemd service 【发布时间】:2020-12-07 15:40:10 【问题描述】:

我正在使用为 pi4 交叉编译的 Qt 5.12.5,如果我将 Qt 程序作为 systemd 服务启动,QProcess::startDetached 将无法正常工作,同时如果它从 shell 启动则按预期工作。

【问题讨论】:

【参考方案1】:

遗憾的是,QT 按预期工作;它的 systemd 运行良好并关闭了整个(隐藏的)进程树。

看一下systemd服务killmode的配置;您也可以尝试从树中强制分离生成的进程。

【讨论】:

以上是关于QProcess::startDetached shell 在父进程死亡时被杀死,如果父进程是一个 systemd 服务的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4 QProcess.startDetached() - 无法获得衍生进程的返回值和 PID

QProcess::startDetached(5.10有了一种新的方式)

QProcess::startDetached shell 在父进程死亡时被杀死,如果父进程是一个 systemd 服务

Qt QProcess startDetached 无法结束进程(bash 会话)

即使进程终止,waitpid 总是返回 -1

如何将 qprocess 带到最前面?