PHP里有个函数很有用。这是在最近的开发中才逐渐用到的。
int ignore_user_abort ( [bool setting] )
这个函数的作用是指示服务器端在远程客户端关闭连接后是否继续执行下面的脚本。

setting 参数是一个可选参数。如设置为True,则表示如果用户停止脚本运行,仍然不影响脚本的运行(即:脚本将持续执行);如果设置为False,则表示当用户停止运行脚本程序时,脚本程序将停止运行。


下面这个例子,在用户关闭浏览器后,该脚本仍然后在服务器上继续执行:

  1. <?php
  2. ignore_user_abort(); // 后台运行
  3. set_time_limit(0); // 取消脚本运行时间的超时上限
  4. do{
  5. sleep(60); // 休眠1分钟
  6. }while(true);
  7. ?>


除非在服务器上关闭这个程序,否则这断代码将永远执行下去。

-------------------------------------------------------------------------

  1. <?php
  2.    ignore_user_abort(); // 后台运行
  3.    set_time_limit(0); // 取消脚本运行时间的超时上限
  4.    echo 'start.';
  5.    while(!file_exists('close.txt')){
  6.     $fp = fopen('test.txt','a+');
  7.     fwrite($fp,date("Y-m-d H:i:s") . " 成功了!rn");
  8.     fclose($fp);
  9.     sleep(10);
  10.    }
  11.    echo 'end.';
  12. ?>

让PHP程序永远在后台运行的更多相关文章

  1. [PHP学习教程 - 系统]002.模拟守护进程(Daemon)-程序永远在后台运行

    引言:如何模拟那些自动轮循的服务,像守护进程(Daemon)那样,可以一直执行,永不停歇呢! Come on! Do it! Do! Do! Do!.... 使用接口: int ignore_user ...

  2. python程序一直在后台运行的解决办法

    刚写了个python程序,要一直在后台运行,即使断开ssh进程也在,下面是解决办法: 假如Python程序为test.py 编写shell脚本start.sh #!/bin/bash python t ...

  3. nohup+命令+& 【退出终端后,程序依然在后台运行】

    [ 如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令. 该命令可以忽略所有挂断(SIGHUP)信号,在你退出帐户/关闭终端之后继续运行相应的进程. nohup ...

  4. linux下程序启动后后台运行实现

    关于linux下的程序运行很简单,将源码编译成二进制(假设为proram)文件后直接在命令行运行即可,root#./program如果需要后台运行,即不占用当前终端,这在嵌入式linux显得十分有必要 ...

  5. PYTHON的程序在LINUX后台运行

    1.nohup 命令 nohup nohup 命令 用途:LINUX命令用法,不挂断地运行命令. 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运 ...

  6. nohup 程序名 & (使程序推到后台运行,即使终端关闭,该程序依然运行)

    IshallbeThatIshallbe:~ iamthat$ ps -ef |grep ping 502 450 1 0 9:30PM ?? 0:00.05 ping www.baidu.com 5 ...

  7. #多个关联的python程序在linux后台运行

    由于在shell脚本中直接使用&符号和python程序有冲突,不能正常的进入后台执行python(多番尝试python xxx.py &,后面的&总是不能正常识别.系统cent ...

  8. Linux使用screen实现关闭ssh连接的情况下,让程序继续在后台运行

    Ubuntu默认没有安装screen,需要手动安装. 安装命令: sudo apt-get install screen 简单的操作方法: 直接输入命令 screen 进入screen子界面,此时pu ...

  9. linux让命令或程序在终端后台运行的方法(Ubuntu/Fedora/Centos等一样适用)

    https://segmentfault.com/a/1190000008314935

随机推荐

  1. Double Strings Solved Problem code: DOUBLE

    # Fuking silly, OTZ.... import sys def main(): n = int(raw_input()) for num in sys.stdin: if int(num ...

  2. 鼠标点击变色 lvha

    a标签有四个"状态"的先后过程是:a:link ->a:hover ->a:active ->a:visited.另外,a:active不能设置有无下划线(总是有 ...

  3. 使用Discuz!自带参数防御CC攻击以及原理,修改Discuz X 开启防CC攻击后,不影响搜索引擎收录的方法

    这部份的工作,以前花的时间太少. 希望能产生一定的作用. http://www.nigesb.com/discuz-cc-attacker-defence.html http://bbs.zb7.co ...

  4. java查找重复类/jar包/普通文件

    开发web应用时,有时更新了类却没有生效,其实是因为jboss/tomcat中其他发布包下有同名类(包括全路径都相同). 于是萌发了做个程序来检查指定目录是否存在重复类(通过asm从类文件中取类的全路 ...

  5. Array vs Linked List

    Access: Random / Sequential 1. Array element can be randomly accessed using index 2. Random access f ...

  6. DBA 经典面试题(2)

    三.备份恢复类   ================================================================================   1:备份如何分 ...

  7. RTP/RTCP/RTSP/RSVP/SDP

    RTP Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式.RTP协议常用 ...

  8. Android声明和使用权限

    Android定义了一种权限方案来保护设备上的资源和功能.例如,在默认情况下,应用程序无法访问联系人列表.拨打电话等.下面就以拨打电话为例介绍一下系统对权限的要求.一般在我们的应用中,如果要用到拨打电 ...

  9. 关于safari上的select宽高问题小技,自定义下拉框

    之前一直用windows做开发,最近换了个mac,在几经折腾之下,安装完了各种开发工具,IDE等,然后欣然打开自己正在开发的网站.突然发现mac上所有的下拉框都变了,都是默认样式,无论padding, ...

  10. (36)JS运动之使物体向右运动

    基本思路:样式要是绝对定位,不然的话根本走不起来.当开启一个定时器的时候.必须先清除定时器.这是为了防止鼠标连续点击button而开启多个定时器,导致物体的速度加快等原因,其次要控制好物体的运动和停止 ...