首页 > 解决方案 > 使用 GLib 从 Python 子进程捕获信号

问题描述

我试图控制我的光标在程序执行的某些点的外观。具体来说,我希望它在执行 Python 脚本时成为“微调器”,然后在执行完成时成为标准指针。现在,我在 Glade 中有一个 leave-event-notify 回调,当它离开某个区域时会更改微调器,但这并不理想,因为用户可能不知道移动光标并且光标不能准确地表示程序的状态。

我的 Python 程序在执行结束时发出 SIGUSR1 信号。我正在使用 GLib 的g_spawn_async_with_pipes. 有什么方法可以从创建的子进程中捕获信号吗?谢谢!

标签: csignalsglib

解决方案


G_SPAWN_DO_NOT_REAP_CHILD当您的 Python 子进程退出时,将标志传递给g_spawn_async_with_pipes()然后调用g_child_watch_add()以获取通知。SIGUSR1如果进程在完成后退出,您无需担心。

除非您发布代码的最小可重现示例,否则很难提供更具体的答案。


推荐阅读