用php守护另一个php进程的例子


Posted in PHP onFebruary 13, 2015

要用php守护另一个php进程(apache模块的运行的,还有nginx等运行的除外)
a.php要守护b.php

在b.php中 通过 getmypid()函数获取当前进程的id,并将id写入c.pid文件中,如果程序执行完成将c.pid文件删除或清空

在a.php中 验证c.pid是否存在 ,是否为空,如果不为空,将pid读出,通过exec执行 ps -p pid|grep 文件名来判断是否运行,判断后执行相应操作

可能有人要问,为什么不直接 ps aux|grep 文件名,这里主要是考虑到文件重名的情况下会出问题

a.php 代码

<?

$id=intval($argv[1]);

if(!file_exists(‘pid'.$id.'.pid')){

echo “not run”;

exit;

}

$content=file_get_contents(‘pid'.$id.'.pid');

if(empty($content)){

echo “not run”;

exit;

}

exec(“ps p “.$content.'|grep b.php',$pids);

if(count($pids)>0) echo(‘runing');

else{echo ‘not run';}

?>

b.php代码
<?
$id=intval($argv[1]);

if(empty($id))exit;

file_put_contents(‘pid'.$id.'.pid',getmypid());

while(1){

file_put_contents(‘pid'.$id.'.pid',getmypid());

sleep(100);

}

?>
PHP 相关文章推荐
php-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
Yii框架登录流程分析
Dec 03 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
PHP中is_dir()函数使用指南
May 08 PHP
php猴子选大王问题解决方法
May 12 PHP
教大家制作简单的php日历
Nov 17 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
thinkPHP5框架中widget的功能与用法详解
Jun 11 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
cakephp打印sql语句的方法
Feb 13 #PHP
php 使用array函数实现分页
Feb 13 #PHP
php生成RSS订阅的方法
Feb 13 #PHP
linux下实现定时执行php脚本
Feb 13 #PHP
浅谈php自定义错误日志
Feb 13 #PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 #PHP
php制作动态随机验证码
Feb 12 #PHP
You might like
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
web页面数据展示新想法(json)
2010/06/08 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
numpy.transpose对三维数组的转置方法
2018/04/17 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
七年级音乐教学反思
2014/01/26 职场文书
法律进社区实施方案
2014/03/21 职场文书
2014年消防工作总结
2014/11/21 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
golang特有程序结构入门教程
2021/06/02 Python
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript