用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 相关文章推荐
杏林同学录(八)
Oct 09 PHP
php 无法载入mysql扩展
Mar 12 PHP
php在线代理转向代码
May 05 PHP
php获取twitter最新消息的方法
Apr 14 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
nginx下安装php7+php5
Jul 31 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 PHP
PHP实现抽奖功能实例代码
Jun 30 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
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
jquery 显示*天*时*分*秒实现时间计时器
2014/05/07 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
工作表现自我评价
2014/02/08 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
英语教师岗位职责
2014/03/16 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android