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网站基础优化方法小结
Sep 29 PHP
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 03 PHP
PHP生成随机密码4种方法及性能对比
Dec 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基础知识回顾
2012/08/16 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
PHP中串行化用法示例
2016/11/16 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
python实现简单的单变量线性回归方法
2018/11/08 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
幼儿园实习生辞职信
2014/01/20 职场文书
销售人员自我评价
2014/02/01 职场文书
法律专业学生的自我评价
2014/02/07 职场文书
医院工作检讨书范文
2014/02/10 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
民主生活会发言材料
2014/10/20 职场文书
报名委托书
2015/01/29 职场文书
婚庆主持词大全
2015/06/30 职场文书
Go 语言结构实例分析
2021/07/04 Golang
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android