【发布时间】:2011-09-21 15:10:06
【问题描述】:
我正在 Linux/Qt 中启动一个进程,然后使用 QProcess 启动一些子进程。然后最终我想优雅地关闭子进程(也就是执行一些清理代码)。
子进程正在使用QSharedMemory,现在当我调用 QProcess::close() 时子进程正在关闭而不调用 QSharedMemory::detach(),结果是所有进程都关闭了......但是有剩余的未清理的共享内存。
我有子进程的代码,代码中有函数cleanup()。父进程如何关闭QProcess,让子进程执行cleanup()?
【问题讨论】:
-
有很多不同的方法可以做到这一点。这里的目标是:我想看看 Qt 框架中使用的“常见”或“最佳实践”方法是什么。
-
仅供参考,所有进程都连接到同一个公共 dbus。
-
我不是 Qt 大师。所以我会保持这个开放状态,直到我得到有很多 Qt 经验的人的回复。
标签: linux qt process ipc child-process