用PHP写daemon无法驻留的问题
/dev/null 2>&1 & echo $!");
?>
在终端下执行php test.php可以将进程留在后台
但是通过浏览器访问test.php的时候,不能在后台留下进程
猜测可能是web进程中止同时把sleep也给中止了,要想一直留着,有什么好的解决方法吗?
回复内容:
比如下面这样一个文件test.php
/dev/null 2>&1 & echo $!");
?>
在终端下执行php test.php可以将进程留在后台
但是通过浏览器访问test.php的时候,不能在后台留下进程
猜测可能是web进程中止同时把sleep也给中止了,要想一直留着,有什么好的解决方法吗?
用swoole扩展写个PHP socket server,作为守护进程运行。
试试php的这个函数 ignore_user_abort 具体用法参考http://cn2.php.net/manual/en/function.ignore-user-abort.php
应该都在这了:
http://www.php.net/manual/en/features.connection-handling.php
基本上:
默认 如果远程客户端断掉连接, 则脚本中止. 通过ignore_user_abort(php.ini), ignore_user_abort(Apache httpd.conf), 或者调用 ignore_user_abort() 函数改变默认设定;
默认 脚本最大运行时间为 30秒. 可以通过 max_execution_time(php.ini), max_execution_time(Apache httpd.conf) 或调用set_time_limit()函数修改.
推荐阅读
-
用PHP写daemon无法驻留的问题
-
第一次用php写webservice遇到一个很奇怪的有关问题,详细请看内容,有代码
-
请问windows下用Navicat能连,用PHP无法连接远程mysql的有关问题!
-
话说现在写PHP的用composer的多不多啊,我有一个问题请教大神
-
遍历-一个用php写的留言板的问题
-
淘宝API返回的json数据无法用json_decode的问题_PHP教程
-
请问windows下用Navicat能连,用PHP无法连接远程mysql的有关问题!
-
遍历-一个用php写的留言板的问题
-
请问windows下用Navicat能连,用PHP无法连接远程mysql的有关问题!
-
话说现在写PHP的用composer的多不多啊,我有一个问题请教大神