如何在两个PHP进程之间传递pid?

3

有一个长期运行的PHP进程,支持信号(SIGHUP等),另一个PHP进程需要知道第一个进程的PID以向其发送信号。

我想设置一个环境变量,在第二个(客户端)进程中读取并用于我的目的,但是putenv(...posix_getpid()...)似乎不会使其对另一个进程可见。

如何使在一个PHP进程中设置的环境变量对另一个进程可见?如果这是不可能的,那么最好的方法是什么(我不想使用文件或数据库)?

2个回答

3

常见的做法是在启动守护进程时创建一个全局知名的pid文件,并将其PID写入该文件。

其他希望向守护进程发送信号的进程只需读取pid文件以检索其当前pid,然后发送信号即可。


1
你所说的是进程间通信(IPC)。解决方案包括使用套接字、命名管道、文件、redis、一些消息总线/队列等。这是软件开发中常见且复杂的问题,有许多强大的选项。
听起来像一个简单的文件对你来说应该可以很好地工作,也可能是最简单的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接