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中include()与require()的区别说明
Mar 10 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
基于php中echo用逗号和用点号的区别详解
Jan 23 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 PHP
基于laravel where的高级使用方法
Oct 10 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
类的另类用法--数据的封装
2006/10/09 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
python的Tqdm模块的使用
2018/01/10 Python
Flask-WTF表单的使用方法
2019/07/12 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
学习自我鉴定
2014/02/01 职场文书
实习推荐信
2014/05/10 职场文书
法语专业求职信
2014/07/20 职场文书
国际贸易系求职信
2014/08/09 职场文书
审美与表现自我评价
2015/03/09 职场文书
家长反馈意见及建议
2015/06/03 职场文书