用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中的Class的几点个人看法
Oct 09 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 PHP
php中array_fill函数的实例用法
Mar 02 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
239军机修复记
2021/03/02 无线电
php图片添加文字水印实现代码
2016/03/15 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
Javascript实现的分页函数
2007/02/07 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python排序方法实例分析
2015/04/30 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python中常用信号signal类型实例
2018/01/25 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
什么是URL
2015/12/13 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
初中体育课教学反思
2016/02/16 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
Java数组与堆栈相关知识总结
2021/06/29 Java/Android