PHP程序守护进程化实现方法详解
发布:smiling 来源: PHP粉丝网 添加日期:2022-03-18 10:56:09 浏览: 评论:0
一般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使用Http Post请求发送Json对象数据代码解析
- 下一篇:最后一页
相关文章
- ·PHP高级编程实例:编写守护进程(2021-04-10)
- ·PHP将进程作为守护进程的方法(2021-05-17)
- ·PHP扩展程序实现守护进程(2021-05-22)
- ·如何写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)