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 相关文章推荐
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
PHP获取url的函数代码
Aug 02 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
php简单分页类实现方法
Feb 26 PHP
微信支付PHP SDK之微信公众号支付代码详解
Dec 09 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
laravel配置Redis多个库的实现方法
Apr 10 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
Yii中特殊行为ActionFilter的使用方法示例
Oct 18 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
967 个函式
2006/10/09 PHP
php google或baidu分页代码
2009/11/26 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
vue实现简单图片上传
2020/06/30 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
Python中用max()方法求最大值的介绍
2015/05/15 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
python实现求最长回文子串长度
2018/01/22 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
对python的输出和输出格式详解
2018/12/08 Python
Python assert关键字原理及实例解析
2019/12/13 Python
python中的逆序遍历实例
2019/12/25 Python
Pytorch之保存读取模型实例
2019/12/30 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
工程测量与监理专业应届生求职信
2013/11/27 职场文书
白酒业务员岗位职责
2013/12/27 职场文书
公司总经理岗位职责
2014/03/15 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
党员剖析材料范文
2014/12/18 职场文书
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers