【发布时间】:2009-11-18 22:45:12
【问题描述】:
我们正在使用 Qt 准备一个应用程序,该应用程序具有一个控制 GUI 的主进程并产生执行实际数据处理的进程。使用 Qt 机制和 stdin/stdout 管道在主进程和数据处理进程之间交换消息。
现在,如果 GUI 崩溃,其他进程会继续运行。我们想要做的是,当一个新的 GUI 启动时,像以前一样重新连接到这些进程。任何人都知道这是否可能,如果可以,如何实现?
【问题讨论】:
我们正在使用 Qt 准备一个应用程序,该应用程序具有一个控制 GUI 的主进程并产生执行实际数据处理的进程。使用 Qt 机制和 stdin/stdout 管道在主进程和数据处理进程之间交换消息。
现在,如果 GUI 崩溃,其他进程会继续运行。我们想要做的是,当一个新的 GUI 启动时,像以前一样重新连接到这些进程。任何人都知道这是否可能,如果可以,如何实现?
【问题讨论】:
如果您使用named pipe 与进程通信,这是可能的。如果 stdin/out 所属的进程终止,则 stdin/out 将关闭。
【讨论】:
您可能想要调查共享内存以进行进程之间的通信。我似乎记得它能够在以前的工作中在非常相似的情况下恢复。
如果您的平台支持,另一种可能性是使用 dbus 进行进程之间的通信。如果是这种情况,则两个进程都不必在那里,但如果它正在运行,它将采取行动获取适当的消息。
【讨论】: