我怎么能与正在运行的进程通信?

时间:2014-11-22 23:44:20

标签: python c linux sockets communication

我想知道如何与正在运行的进程通信,就像谷歌Chrome一样。如果已存在任何Google Chrome实例,并且您在外部链接(内部或外部浏览器)中单击,则会打开一个新标签。

然后,我的问题是这种通信是通过套接字还是类似的东西发生的?

谢谢。

2 个答案:

答案 0 :(得分:2)

这实际上取决于您的平台。 GTK +有GtkApplication(基于GIO中的GApplication类),Qt有QtSingleApplication等。

GApplication / GtkApplication将基本上尝试提供D-Bus名称(至少在Linux上 - 我相信该机制与平台有关)。如果成功,那么你就是原始应用程序,如果没有,那么应用程序已经在运行,你可以通过D-Bus与它通信。

答案 1 :(得分:0)

我认为合并thisthis可以解决您的问题。基本上它可以确定正在运行的应用程序的pid(如果有的话)并写入其stdin。您可能希望向该流程发出信号,要求处理新信息(this应该有所帮助)。

套接字,管道,消息和共享内存也是不错的选择,但乍一看这似乎是最简单的。