我使用linux命令nohup php filename.php &创建后台php进程。这里的问题是,如果filename.php中包含的文件或甚至文件本身有任何更改,我必须终止当前进程并重新启动它。是否有任何方法来防止这种情况,以便在代码更新时不需要重新启动,因为我不希望应用程序中有任何停机时间(因为终止和重新启动进程)。如果没有其他办法解决这个问题,那么会有人建议另一种方法吗?
编辑1
我正在使用ZeroMQ进行主进程与后台进程之间的通信。后台进程绑定到特定的TCP端口,例如555。现在,如果我尝试启动一个新进程,并尝试将它绑定到同一个端口,它就会产生一个错误,因为端口已经在使用中了。因此,在开始一个新的过程之前,我需要结束这个过程。
编辑2
请查看我的其他question,以了解我对示例代码的完整问题的详细解释.
发布于 2016-05-16 11:12:21
在运行脚本时,无法更新代码。PHP在与apache一起运行时甚至不会这样做。但是,PHP在启动新请求之前确实会检查它是否应该重新加载代码。
如果性能不是大问题的话。你自己也可以做些类似的事。让主脚本(不需要更改太多)侦听队列。然后使用proc_open启动第二个脚本,运行第二个脚本并在管道上序列化数据。现在,当使用第二个脚本时,它将为每个请求重新加载。
https://stackoverflow.com/questions/37251608
复制相似问题