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中Session的概念
Oct 09 PHP
用PHP实现多级树型菜单
Oct 09 PHP
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 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的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
Python基础知识_浅谈用户交互
2017/05/31 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python绘制规则网络图形实例
2019/12/09 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
航海技术专业毕业生求职信
2014/04/06 职场文书
药剂专业自荐书
2014/06/20 职场文书
营销计划书
2015/01/17 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python