让PHP程序永远在后台运行

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. ?>

来自为知笔记(Wiz)

时间: 2024-12-21 01:56:47

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

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

引言:如何模拟那些自动轮循的服务,像守护进程(Daemon)那样,可以一直执行,永不停歇呢! Come on! Do it! Do! Do! Do!.... 使用接口: int ignore_user_abort ( [bool setting] ) 方法声明: 这个函数的作用是指示服务器端在远程客户端关闭连接后是否继续执行下面的脚本. 参数说明: setting:参数是一个可选参数.如设置为True,则表示如果用户停止脚本运行,仍然不影响脚本的运行(即:脚本将持续执行):如果设置为False,

(转载)nohup命令让Linux程序永远在后台执行

Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行.我们自己编写的程序只是普通程序,一般这种程序即使使用 & 结尾,如果终端关闭,那么程序也会被关闭. 为了能够后台运行,我们需要使用nohup这个命令,比如我们有个start.sh需要在后台运行,并且希望在后台能够一直运行,那么就使用nohup: nohup /root/start.sh & 在shell中回车后提示: [~]$ appending output to nohup.out

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

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

PYTHON的程序在LINUX后台运行

1.nohup 命令 nohup nohup 命令 用途:LINUX命令用法,不挂断地运行命令. 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号.在注销后使用 nohup 命令运行后台中的程序.要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部. 如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 noh

让程序在linux后台运行的方法

常见用法: nohup ./Thriftc & > /dev/null & 在linux后台运行Thriftc程序,并将其输出重定向到空设备:/dev/null,也就是将程序输出全部丢弃. nohup COMMAND > out.log 2>&1 & 在linux后台运行COMMAND命令,将标准输出重定向到out.log文件,标准错误也重定向到out.log文件(标准错误重定向到标准输出,再将标准输出重定向到out.log). 上边的示例涉及到两个命令:

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

IshallbeThatIshallbe:~ iamthat$ ps -ef |grep ping 502 450 1 0 9:30PM ?? 0:00.05 ping www.baidu.com 502 492 475 0 9:32PM ttys000 0:00.00 grep ping IshallbeThatIshallbe:~ iamthat$ kill -9 502 -bash: kill: (502) - No such process IshallbeThatIshallbe:~

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

Ubuntu默认没有安装screen,需要手动安装. 安装命令: sudo apt-get install screen 简单的操作方法: 直接输入命令 screen 进入screen子界面,此时putty标题栏会指示处于子界面状态,然后运行你的程序 操作命令... 然后按下Ctrl+A后抬起,然后按下d键,此时切换回主界面,Putty的窗口标题栏也会指示. 此时就是断开ssh(直接关闭putty的窗口),程序仍在运行. 以后重新ssh连接后,如果要找回之前的窗口,输入 screen -ls 查

Java程序在Linux中实现后台运行

1.运行脚本 脚本如下,这个脚本存在一点问题,Log4j稍微有点问题,但是对运行及日志记录没有影响,日志是通过将所有控制台数据全部写入文件的形式记录的. #!/bin/sh #author:wangchengwei #date:2015-7-7 #desc:Run java application #Java的安装目录 JAVA_HOME=/usr/lib/java-1.7.0 #运行程序所使用的用户 OWNER=root #Java程序的目录 APP_HOME=/software/TaxiDa

linux命令后台运行

1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断. 2. 那大家可能又要问了,在后台执行的程序怎么使它恢复到前台来运行呢?很简单,只用执行fg这个命令,就可以了. 3.可能有些同学又要问了,我现在已经在前台运行的命令,我能把它放到后台去运行么?当然可以了,只要执行ctrl+z就可以做到了.是不是很赞啊! 4.说到这里可能有些同学又要问了,如果我有多个进程在后台运行,那如何恢复到前台来执行呢?这时候就要用到jobs这个命令了,通过j