热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用PHP写daemon无法驻留的问题

比如下面这样一个文件test.php{代码...}在终端下执行phptest.php可以将进程留在后台但是通过浏览器访问test.php的时候,不能在后台留下进程猜测可能是web进程中止同时把sleep也给中止了,要想一直留着,有什...
比如下面这样一个文件test.php

 /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

基本上:

  1. 默认 如果远程客户端断掉连接, 则脚本中止. 通过ignore_user_abort(php.ini), ignore_user_abort(Apache httpd.conf), 或者调用 ignore_user_abort() 函数改变默认设定;

  2. 默认 脚本最大运行时间为 30秒. 可以通过 max_execution_time(php.ini), max_execution_time(Apache httpd.conf) 或调用set_time_limit()函数修改.


推荐阅读
  • 【宇润日常疯测007】Swoole 协程与传统 fpm 同步模式比较
    为什么80%的码农都做不了架构师?如果说数组是PHP的精髓,数组玩得不6的,根本不能算是会用PHP。那协程对于Swoole也是同理& ... [详细]
  • Swoole在PHP-fpmapache中如何使用task功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人 ... [详细]
  • php在哪里好找工作(php学到什么程度可以找到工作)
    导读:本篇文章编程笔记来给大家介绍有关php在哪里好找工作的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、php去哪个城 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 如何通过swoole加速laravel的问题?
    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下再来复习一下吧,导致php慢的各种因素中解析性语言的 ... [详细]
  • PHP语言之所以能有今天的地位,得益于PHP语言设计者一直遵从实用主义,将技术的复杂性隐藏在底层。PHP语言入门简单,容易掌握,程序健壮性好。 ... [详细]
  • php怎么做rpc通信(RPC通信)
    导读:很多朋友问到关于php怎么做rpc通信的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • 哪里有php培训(php培训哪家好)
    导读:今天编程笔记来给各位分享关于哪里有php培训的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • 电商系统设计艺术——秒杀业务设计
    一、秒杀场景人多货少,只有少量的人能够抢购成功。高并发,秒杀业务在开始之前流量比较平稳,开始后流量会直线性的上升。持续时间短࿰ ... [详细]
  • redis 获取不到_redis 缓存锁的实现方法
    1.redis加锁分类redis能用的的加锁命令分表是INCR、SETNX、SET2.第一种锁命令INCR这种加锁的思路是,key不存在,那么key的值 ... [详细]
  • PHP socket服务端与客户端的简易通信
    今天学习socket通信的同时,顺便整理了下以前初识socket的知识。现在关于php的socket通信,有些框架已经十分成熟了,比如swoole和workerman,这两个大家可以学习学 ... [详细]
  • |Q|A|-------------------|-----|Bugreport?|ye ... [详细]
  • 之前我们已经学习过PHP中的引用计数以及垃圾回收机制的概念。这些内容非常偏理论,也是非常常见的面试内容。而今天介绍的则是具体的关于垃圾回收的一些功能函数。关于之前的两篇介绍文章,大家可以到文章底部查看。再谈循环引用以及强制清理循环引用我们为什么要强调“ ... [详细]
  • 使用版本:1.8.0及以上使用条件:1.开启async-redisphp--riswoole(如果没有开启,重新编译安 ... [详细]
author-avatar
若涵她娘_124
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有