您现在的位置是:网站首页> 编程资料编程资料
PHP程序守护进程化实现方法详解_php技巧_
2023-05-25
549人已围观
简介 PHP程序守护进程化实现方法详解_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()即可。
注:这里没有实现标准输入输出的重定向。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- PHP如何获取Cookie并实现模拟登录_php技巧_
- PHP使用Http Post请求发送Json对象数据代码解析_php技巧_
- PHP字符串和十六进制如何实现互相转换_php技巧_
- PHP xpath提取网页数据内容代码解析_php实例_
- 浅析PHP中json_encode与json_decode的区别_php技巧_
- PHP vsprintf()函数格式化字符串操作原理解析_php技巧_
- PHP number_format函数原理及实例解析_php技巧_
- PHP array_reverse() 函数原理及实例解析_php实例_
- PHP基于array_unique实现二维数组去重_php技巧_
- 关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍_php技巧_
