Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何与正在运行的进程通信?_Python_C_Linux_Sockets_Communication - Fatal编程技术网

Python 如何与正在运行的进程通信?

Python 如何与正在运行的进程通信?,python,c,linux,sockets,communication,Python,C,Linux,Sockets,Communication,我想知道我如何能像谷歌Chrome那样与正在运行的进程进行通信。如果已经存在Google Chrome的任何实例,并且您在外部链接(浏览器内部或外部)中单击,则会打开一个新选项卡 那么,我的问题是,这种通信是通过套接字或类似的东西进行的吗 谢谢。我认为和结合会解决你的问题。基本上,它可以确定正在运行的应用程序的pid(如果有)并写入其stdin。您可能希望向该流程发出信号,表示有新信息需要处理(这应该会有所帮助) 套接字、管道、消息和共享内存也是不错的选择,但乍一看这似乎是最简单的。这实际上取决

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

那么,我的问题是,这种通信是通过套接字或类似的东西进行的吗

谢谢。

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


套接字、管道、消息和共享内存也是不错的选择,但乍一看这似乎是最简单的。这实际上取决于您的平台。GTK+has(构建在GIO中的类上)、Qt-has等


gaapplication/GtkApplication基本上会尝试提供一个D-Bus名称(至少在Linux上是这样的,我相信这种机制是依赖于平台的)。如果成功,则您是原始应用程序,如果未成功,则应用程序已在运行,您可以通过D-Bus与之通信。

只需谷歌搜索“Linux进程间通信”。糟糕的示例。正如@Shemhamforasch所建议的,您可以使用管道等,但GUI程序通常使用操作系统的消息总线。对于windows这样的平台来说,在executor中内置“作为窗口启动”也是很常见的。我不知道细节,所以不太清楚。事实上,这是我的。我正在编写一个服务器,我希望能够使用CLI更改一些设置。然后,我想知道什么是最好的方式来提供一个接口来做到这一点。然后你应该使用任何对你方便的,如果我是你的话,我可能只会使用你在服务器上使用的任何东西。如果您的服务器是HTTPd,请使用HTTP。如果是ZeroMQ,请使用ZeroMQ等。如果您正在编写网络服务器,请仅绑定到本地端口。如果您正在编写D-Bus服务器,请使用D-Bus等。没有一种真正的方法可以做到这一点,因此通常最好利用现有的基础设施。谢谢您的回答。当您谈到本地端口时,我搜索了一些关于Unix域套接字的信息,这些信息限制了对本地应用程序的访问。