繁体   English   中英

如何在Linux中的两个进程之间传递事件fd

[英]How to pass an event fd between two process in linux

我有两个过程,ProcessGUI和ProcessMaster。 我的两个过程在某些情况下都会采取一些措施。 假设一旦在Master进程中发生了某些事情,GUI进程就必须显示一些事情。 我想通过更改事件fd来表明这一点。 有什么办法可以在两个进程之间共享事件fd。

有多种方法可以实现您想要的。

突然出现在我头上的第一个事件是使用sendmsg在套接字上共享eventfd。 这种方法是可行的,但是它需要两个进程都打开一个套接字。

另一种方法是使用信号。 有2个信号可用作“用户信号”。 USR1和USR2,您可以设置一个过程来捕获用户信号,然后另一个过程来发送用户信号( kill它,以更准确地说)。

我能想到的最后一件事是使用套接字并对其进行轮询。 老实说,这与第一种方法类似,但是没有在套接字上共享FD。

您可以使用Linux信号来通信两个进程。 这里有一些示例: Linux信号

您的其中一个进程会使用raise()方法生成信号,而另一个进程会注册一个信号处理程序,以使事件与signal()函数反应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM