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 相关文章推荐
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 PHP
PHP学习笔记之二
Jan 17 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
Linux安装配置php环境的方法
Jan 14 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
php对象工厂类完整示例
Aug 09 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
php-fpm中max_children的配置
Mar 15 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 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 COOKIE设置为浏览器进程
2009/06/21 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
php表单处理操作
2017/11/16 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
js数组操作学习总结
2013/11/04 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
JS常用算法实现代码
2016/11/14 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
python中map的基本用法示例
2018/09/10 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
详解django2中关于时间处理策略
2019/03/06 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
what is the difference between ext2 and ext3
2015/08/25 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
总经理办公室主任岗位职责
2013/11/12 职场文书
小学生美德少年事迹
2014/02/02 职场文书
优秀高中生事迹材料
2014/02/11 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书