PHP模拟守护进程
2016-01-28 10:14
495 查看
转载地址:http://www.cnblogs.com/birdman/archive/2011/08/27/2155837.html
守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件,像C,python,java等语言都支持守护进程,到目前为止,PHP暂不支持守护进程,浏览器每发起一次访问请求时,web服务器调用PHP,PHP执行请求并返回结果后就关闭了,变量无法常驻内存的,虽然你也可以把变量存储到文件、Memcache、Redis中去供下次调用,但链接其实是新建的。
其实在PHP中实现守护进程,还是有办法模拟的,主要运用到Linux的nohup命令,下面对这个命令进行介绍一下,具体可以查看相关手册。
百度百科:
nohup 命令
用途:LINUX命令用法,不挂断地运行命令。
语法:nohup Command [ Arg ... ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用
nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
有了此命令,我们就可以在PHP_CLI模式下创建一个死循环,用来模拟一个守护进程。
1.创建文件daemon.php
2.启动守护进程
其中,log.php为日志文件,即在while循环中输出的信息,&表示脱离终端,放到后台执行
守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件,像C,python,java等语言都支持守护进程,到目前为止,PHP暂不支持守护进程,浏览器每发起一次访问请求时,web服务器调用PHP,PHP执行请求并返回结果后就关闭了,变量无法常驻内存的,虽然你也可以把变量存储到文件、Memcache、Redis中去供下次调用,但链接其实是新建的。
其实在PHP中实现守护进程,还是有办法模拟的,主要运用到Linux的nohup命令,下面对这个命令进行介绍一下,具体可以查看相关手册。
百度百科:
nohup 命令
用途:LINUX命令用法,不挂断地运行命令。
语法:nohup Command [ Arg ... ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用
nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
有了此命令,我们就可以在PHP_CLI模式下创建一个死循环,用来模拟一个守护进程。
1.创建文件daemon.php
相关文章推荐
- PHP中可变变量和php可变函数到底有什么用?
- PHP里关于时间日期大小写(Y,y,M,m...)
- php扩展安装
- CI框架 -- 在视图文件中使用 PHP 替代语法
- PHP-Java-Bridge使用笔记
- PHP-Java-Bridge使用笔记
- 实例详解PHP中html word 互转的方法
- Yii2 获取模块名、控制器名、方法名
- phpcms二次开发
- HDOJ 1096 A+B for Input-Output Practice (VIII)
- HDOJ 1094 A+B for Input-Output Practice (VI)
- HDOJ 1094 A+B for Input-Output Practice (VII)
- HDOJ 1093 A+B for Input-Output Practice (V)
- HDOJ 1091 A+B for Input-Output Practice (IV)
- HDOJ 1091 A+B for Input-Output Practice (III)
- HDOJ 1090 A+B for Input-Output Practice (II)
- HDOJ 1089 A+B for Input-Output Practice (I)
- 实例详解PHP中html word 互转的方法
- 【嘉兴东臣php】php
- php7编译swoole