PHP创建单例后台进程的方法示例


Posted in PHP onMay 23, 2017

本文实例讲述了PHP创建单例后台进程的方法。分享给大家供大家参考,具体如下:

可以通过如下语句启动一个PHP后台进程:

$command = " php script.php ";
$pid = exec("nohup $command > /dev/null 2>&1 & echo $!");

nohup表示这个进程独立于创建的用户,可以以守护方式运行。

如果需要这个后台进程是单例运行的,那么可以通过下面的方法来记录/判断进程是否已运行

//query the database for process id
$query = "SELECT pid FROM `daemons` WHERE `pid` = '2013' LIMIT 1";
$result = mysql_query($query);
$pid = mysql_result($result, 0, 'pid');
//check if the process is running
exec("ps $pid", $pState);
if((count($pState) >= 2) && !empty($pid))
{
echo "RUNNING";
}
else
{
echo "INACTIVE";
}

也可以把pid写入文件,但如果在一个分布式任务环境中,则放在数据库中要更好

停止一个后台进程:

//check if the process from the database is running
exec("ps $pid", $pState);
if((count($pState) >= 2))
{
//if the process is running, kill it
exec("kill $pid");
//update database row with an empty process id
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
php集成环境xampp中apache无法启动问题解决方案
Nov 18 PHP
php绘制一条直线的方法
Jan 24 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
May 25 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
PDO::beginTransaction讲解
Jan 27 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 #PHP
yii 2.0中表单小部件的使用方法示例
May 23 #PHP
php实现留言板功能(会话控制)
May 23 #PHP
php实现文件预览功能
May 23 #PHP
PHP写的简单数字验证码实例
May 23 #PHP
php实现评论回复删除功能
May 23 #PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 #PHP
You might like
德劲1103二次变频版的打磨
2021/03/02 无线电
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
用htc组件制作windows选项卡
2007/01/13 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
Python中自定义函数的教程
2015/04/27 Python
python动态加载包的方法小结
2016/04/18 Python
Python中functools模块的常用函数解析
2016/06/30 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
python中实现栈的三种方法
2020/12/19 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
应届生法律求职信
2013/10/22 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
初中信息技术教学反思
2016/02/16 职场文书
如何书写邀请函?
2019/06/24 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android