我的 PyQt 应用程序需要了解某些操作系统事件(例如 Unix 信号或文件系统事件)。例如,假设 myReaper(一个 unix 进程)将执行 myProvider(另一个 Unix 进程)并等待其子进程退出。myReaper 然后想将退出状态传达给 myQtApp。
- 一种解决方案是让 myReaper 向(unix)发送 myQtApp 信号。但似乎我需要通过 socketpair 或类似的解决方法,请参阅 https://doc.qt.io/qt-5/unix-signals.html
- 另一种解决方案是让 myReaper 将状态写入文件,然后 myQtApp 通过 PyInotify(FS 事件)唤醒并读取内容。我认为这也会遇到与 unix 信号类似的问题。
- 另一种解决方案是使用 QTimer 每隔一段时间唤醒并检查文件。基于轮询的系统,但对操作系统事件的管道最少。
有没有人处理过这类问题?你有什么建议吗?
谢谢