用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自定义函数收代码
Aug 01 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
php中异常处理方法小结
Jan 09 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
PHP中类的继承和用法实例分析
May 24 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
php连接mysql数据库
Mar 21 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 PHP
PHP内存溢出优化代码详解
Feb 26 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
如何去掉文章里的 html 语法
2006/10/09 PHP
将php数组输出html表格的方法
2014/02/24 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
解决laravel session失效的问题
2019/10/14 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
Js四则运算函数代码
2012/07/21 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
python字符串排序方法
2014/08/29 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
英国探险旅游专家:Explore
2018/12/20 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
自我评价正确写法范文
2013/12/10 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
五年级小学生评语
2014/12/26 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
Java 在生活中的 10 大应用
2021/11/02 Java/Android
SQL Server中使用表变量和临时表
2022/05/20 SQL Server