不确定这是否更适合服务器故障或堆栈溢出,但这里有。
我在 Apache MPM prefork 上使用 mod_php 并生成一个新进程,如下所示:
<?php
exec("/usr/bin/php -f backgroundScript.php &");
?>
假设新的 backgroundScript.php 子进程运行了很长时间……
1) 现在是否认为父 PHP 进程是空闲的?它是否返回到服务器池?
2) 如果 Apache 确实杀死了返回的父 PHP 进程MinSpareServers
,backgroundScript.php 是否也会被清理或无限期地继续运行?
3) Apache 是否有其他方式可能会无意中杀死 backgroundScript.php 子进程?service httpd stop
也许?
您想在后台运行应用程序而忘记了吗?
php.net上有很多关于这个的帖子
另外,请注意执行人员:
在这里和这里和这里等
我有丑陋的代码,违反了这些规则:
刚刚在我的 Fedora 盒子上用默认的 apache+php(prefork + 模块)进行了测试,我用 killall -9 /usr/sbin/httpd 杀死了进程
&
- 不,没有,它仍然被认为是在运行。我的后台应用程序仍在运行添加后
/dev/null
-一切正常,父进程ID为“1”。