我如何创建能够与正在运行的应用程序 A 进行通信的应用程序 B?

我如何创建能够与正在运行的应用程序 A 进行通信的应用程序 B?

我有后台应用程序A

我想创建应用程序配置应用程序A在飞行中。

那么,我如何检测是否A正在运行并向A

答案1

如果您只想更改程序的配置,那么典型的方法是更新其 conf 文件,然后向其发送 SIGHUP 信号,该信号被编程为通过重新加载其 conf 文件来响应(请参阅 参考资料signal(7))。正如 Coren 所说,您通常让程序在启动时将其 pid 存储在 /var/run 中的文件中,以便稍后可以向其发送信号。

如果您需要与程序进行更复杂的通信,您将需要使用 fifo 或 unix 域套接字。 fifo(参见fifo(7)mkfifo(3))更简单,但守护程序只能与单个控制程序通信。 Unix 域套接字(请参阅 参考资料unix(7))使用起来比较复杂,但是您可以接受来自多个客户端的连接。

答案2

后台应用程序称为“守护进程“在 Unix 和 Linux 世界中。

它们以多种方式标准化,其中一种方式是如何获取它们的 pid。他们通常会创建一个 pid 文件/var/run

有了他们的 pid,你几乎可以在以下命令的帮助下了解他们的一切/进程。您可以知道它是否仍然处于活动状态、已使用的内存、内存映射、文件打开等。

正如 sr_ 所说,您可以使用 IPC 方法来与其通信。

相关内容