PHP扩展程序实现守护进程
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-22 19:39:22 浏览: 评论:0
守护进程就是在后台一直运行的进程。比如我们启动的httpd,mysqld等进程都是常驻内存内运行的程序。,下面我们就来探讨下,如何使用php来实现守护进程。
一般Server程序都是运行在系统后台,这与普通的交互式命令行程序有很大的区别。glibc里有一个函数daemon。调用此函数,就可使当前进程脱离终端变成一个守护进程,具体内容参见man daemon。PHP中暂时没有此函数,当然如果你有兴趣的话,可以写一个PHP的扩展函数来实现。
PHP命令行程序实现守护进程化有2种方法:
一 、使用nohup,代码如下:
nohup php myprog.php > log.txt &
这里就实现了守护进程化。
单独执行 php myprog.php,当按下ctrl+c时就会中断程序执行,会kill当前进程以及子进程。
php myprog.php &,这样执行程序虽然也是转为后台运行,实际上是依赖终端的,当用户退出终端时进程就会被杀掉。
二、使用PHP代码来实现
- function daemonize()
- {
- $pid = pcntl_fork();
- if ($pid == -1)
- {
- die("fork(1) failed!\n");
- }
- elseif ($pid > 0)
- {
- //让由用户启动的进程退出
- exit(0);
- }
- //建立一个有别于终端的新session以脱离终端
- posix_setsid();
- $pid = pcntl_fork();
- if ($pid == -1)
- {
- die("fork(2) failed!\n");
- }
- elseif ($pid > 0)
- {
- //父进程退出, 剩下子进程成为最终的独立进程
- exit(0);
- }
- }
- daemonize();
- sleep(1000);
用上面代码即可实现守护进程化,当你的PHP程序需要转为后台运行时,只需要调用一次封装好的函数daemonize()即可。
注:这里没有实现标准输入输出的重定向。
Tags: PHP扩展程序 PHP守护进程
- 上一篇:php微信公众平台开发类实例
- 下一篇:微信自定义菜单的处理开发示例
相关文章
- ·PHP高级编程实例:编写守护进程(2021-04-10)
- ·PHP将进程作为守护进程的方法(2021-05-17)
- ·如何写php守护进程(Daemon)(2021-07-03)
- ·分享PHP守护进程类(2021-07-03)
- ·php实现简单的守护进程创建、开启与关闭操作(2021-12-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)