有一個長期存在的PHP進程,它支持信號(SIGHUP
等),另一個PHP進程需要知道第一個發送信號的PID。如何將pid從一個PHP進程與另一個進程進行通信?
我想設置一個環境變量,它將在第二個(客戶端)進程中讀取並用於我的目的,但putenv(...posix_getpid()...)
似乎不會讓其他進程可見。
如何製作一個環境變量,在一個PHP進程中設置,對另一個進程可見?如果這是不可能的,有什麼更好的方法(我不想使用文件或數據庫)?
有一個長期存在的PHP進程,它支持信號(SIGHUP
等),另一個PHP進程需要知道第一個發送信號的PID。如何將pid從一個PHP進程與另一個進程進行通信?
我想設置一個環境變量,它將在第二個(客戶端)進程中讀取並用於我的目的,但putenv(...posix_getpid()...)
似乎不會讓其他進程可見。
如何製作一個環境變量,在一個PHP進程中設置,對另一個進程可見?如果這是不可能的,有什麼更好的方法(我不想使用文件或數據庫)?
你在說什麼是Inter-Process Communication (IPC)。解決方案包括使用套接字,命名管道,文件,redis,一些消息總線/隊列等。這是軟件開發中的一個常見且複雜的問題,並且有許多強大的選項。
聽起來像一個簡單的文件會適合你,可能是......最簡單的。
通常的做法是在啓動守護程序進程時創建一個全球知名的pid
文件,並將其PID寫入該文件。
其他願意發送信號給守護進程的進程只讀pid文件來檢索當前的pid並在此後發送信號。