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 06 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
php实现建立多层级目录的方法
Jul 19 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
微信支付PHP SDK之微信公众号支付代码详解
Dec 09 PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 PHP
yii2的restful api路由实例详解
May 14 PHP
PHP7 安装event扩展的实现方法
Oct 08 PHP
PHP实现随机发扑克牌
Apr 22 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
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
bpython 功能强大的Python shell
2016/02/16 Python
python简单实现AES加密和解密
2019/03/28 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
numpy 声明空数组详解
2019/12/05 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
畜牧兽医本科生的自我评价
2014/03/03 职场文书
法定代表人授权委托书
2014/04/04 职场文书
个人租房协议书
2014/04/09 职场文书
个人向公司借款协议书
2014/10/09 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书