[英]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.