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框架Phpbean说明
Jan 10 PHP
php socket方式提交的post详解
Jul 19 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
php中异常处理方法小结
Jan 09 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
php中二分法查找算法实例分析
Sep 22 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 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框架Phpbean说明
2008/01/10 PHP
php 无法载入mysql扩展
2010/03/12 PHP
smarty内置函数section的用法
2015/01/22 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
Javascript的构造函数和constructor属性
2010/01/09 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
vuex提交state&&实时监听state数据的改变方法
2018/09/16 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python如何实现文本转语音
2016/08/08 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python使用functools实现注解同步方法
2018/02/06 Python
python assert的用处示例详解
2019/04/01 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
巾帼建功标兵事迹材料
2014/05/11 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
户籍证明书标准模板
2014/09/10 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS