如何创建一个合适的PHP后台进程


How to create a proper PHP Background process?

我正在使用linux命令nohup php filename.php &创建一个后台php进程。这里的问题是,如果filename.php中包含的文件甚至文件本身有任何更改,我必须终止当前进程并重新启动它。有没有任何方法可以防止这种情况,这样代码更新就不需要重新启动,因为我不希望我的应用程序出现任何停机(因为终止和重新启动进程)。如果没有其他办法,那么有人会建议另一种方法吗?

编辑1

我使用ZeroMQ在主进程和这个后台进程之间进行通信。后台进程绑定到一个特定的TCP端口,比如555。现在,如果我尝试启动一个新进程,并尝试将其绑定到同一个端口,则会出现错误,因为该端口已经在使用中。因此,在开始新的过程之前,我需要终止这个过程。

编辑2

请检查我的另一个问题,以获得我对样本代码的完整问题的深入解释。

脚本运行时不能更新代码。PHP在使用apache运行时甚至不会这样做。然而,PHP在启动新请求之前会检查是否应该重新加载代码。

如果性能不是一个大问题。你自己也可以做类似的事情。让一个主脚本(不需要更改太多)侦听队列。例如,使用proc_open启动第二个脚本来运行第二个剧本,并通过管道序列化数据。现在,当使用第二个脚本时,它将为每个请求重新加载。