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中的三元运算符使用说明
Jul 03 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
PHP开发微信支付的代码分享
May 25 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
Oct 22 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
针对PHP开发安全问题的相关总结
Mar 22 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 PHP
一文搞懂php的垃圾回收机制
Jun 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
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PHP与以太坊交互详解
2018/08/24 PHP
js实现select下拉框菜单
2015/12/08 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
Python如何计算语句执行时间
2019/11/22 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
利用python 下载bilibili视频
2020/11/13 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
承诺书格式范文
2014/06/03 职场文书
励志演讲稿300字
2014/08/21 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
导游词之无锡唐城
2019/12/12 职场文书
导游词之阆中古城
2019/12/23 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python