在PHP中使用nohup或setsid作为快速CGI

时间:2010-09-28 18:12:34

标签: php shell fork command-line-interface

我正在尝试执行一个可能很长的后台进程来响应传入的AJAX请求,但是使用nohupsetsid通过shell_exec会导致服务器分叉炸弹。我们使用suexec和FastCGI,当它发生轰炸时,整个服务器都会被抓取。

shell_exec("nohup /home/me/myscript.php");

脚本现在没有做任何冗长的事情,只输出到一个不存在的文件(从未发生过,因为它会先爆炸)

谢谢!

1 个答案:

答案 0 :(得分:0)

我总是在http://php.net/manual/en/intro.pcntl.php看到警告(尽管你使用nohup,我知道)作为警告,从网络服务器进程分叉并不是一种安全的方法。如果后台进程需要启动,我将创建一个守护进程/始终正在运行的作业进程,它可以接收这些请求(并且与Web服务器没有任何关系),可以随意分配/ nohups。