要用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);

}

?>

原文:http://www.jb51.net/article/61112.htm

php启动另一个php进程,用php守护另一个php进程的例子相关推荐

  1. python打开一个软件并进行操作_python程序中的进程操作

    之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序也是一个进程 ...

  2. 手写一个X86操作系统实战:从零开始构建一个U盘启动的自制操作系统(一)

    这个标题可能有点大了:-) 一个操作系统至少应该有自己的文件系统和进程机制,不过我们的最终目标应该是这个~ 无论如何,看完本文,你应该可以手写一段通过U盘启动的在PC上运行的不需要其他软件来协助的自启 ...

  3. EF 多线程TransactionScope事务异常事务(进程 ID 58)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。

    在使用EF的TransactionScope事务时,如果多线程程序,经常会抛出如下异常 {"事务(进程 ID 58)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品.请重新运行该事务 ...

  4. linux kill一个进程,linux kill命令:(中止一个进程)

    1.作用 kill命令用来中止一个进程. 2.格式 kill [ -s signal | -p ] [ -a ] pid - kill -l [ signal ] 3.参数 -s:指定发送的信号. - ...

  5. docker 主进程 日志_[docker]从一个实例,一窥docker进程管理

    在Docker中,进程管理的基础是Linux内核的PID命名空间技术.在不同的PID命名空间下,可以有相同的PID. Linux内核为所有的PID命名空间维护了一个树状的数据结构,最顶层是系统初始化时 ...

  6. C#种死锁:事务(进程 ID 112)与另一个进程被死锁在 锁

    C#种死锁:事务(进程 ID 112)与另一个进程被死锁在 锁 参考文章: (1)C#种死锁:事务(进程 ID 112)与另一个进程被死锁在 锁 (2) 通信缓冲区 资源上,并且已被选作死锁牺牲品.请 ...

  7. 若一个用户进程通过read系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )

    若一个用户进程通过read系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( A ) Ⅰ. 若该文件的数据不在内存,则该进程进入睡眠等待状态 Ⅱ. 请求read系统调用会导致CPU ...

  8. SQL Server死锁问题:事务(进程 ID x)与另一个进程被死锁在 锁 | 通信缓冲区资源上并且已被选作死锁牺牲品。请重新运行该事务。...

    ### The error occurred while setting parameters ### SQL: update ERP_SCjh_zzc_pl set IF_TONGBU=1 wher ...

  9. 事务(进程 ID )与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务...

    其实所有的死锁最深层的原因就是一个:资源竞争 表现一:     一个用户A 访问表A(锁住了表A),然后又访问表B     另一个用户B 访问表B(锁住了表B),然后企图访问表A 这时用户A由于用户B ...

  10. Linux c 监控进程状态,linux进程监控和守护进程的程序_linux程序一实现守护进程,用于监测程序二的启动状态-C代码类资源...

    linux实现对开启进程的监控,1,从配置文件中获得要开启的进程名 2,放入结构体数组中3,用fork加exel启动进程,4,检测proc下进程是否在运行,没有运行,则开启此进程5, struct p ...

最新文章

  1. ebay OA题目汇总 (更新于20210728)
  2. html制作柱状图教程,基于Echarts的HTML5 Canvas折线图柱状图DEMO演示
  3. java 获取文件大小_阿里Java后端开发面经,面试官都替我感到绝望
  4. python能做什么-学 Python 都用来干嘛的?
  5. 2与27日 双目视觉系统,相机标定,矫正,匹配(特征,稠密),特征提取的方法,得到视差图
  6. NETBEUI协议的优点及应用
  7. 将安卓手机摄像头打造成电脑高清摄像头
  8. 非接触IC卡读写模块MFRC530的工作原理及其应用
  9. 中心极限定理 - 正态分布
  10. (转)MSDN Library “已取消到该网页的导航”解决办法
  11. 爱测未来移动-iTest特色功能介绍
  12. Ubuntu 18.04 安装vsftpd
  13. java 读取csv文件乱码_java读取csv文件乱码怎么解决
  14. 纵观Tensorflow、Keras、Pytorch的发展史
  15. Office2019 Office2016 Office2010 Office365 系列各版本下载
  16. docker制作镜像
  17. 一文搞清楚Web和WWW是什么?
  18. php friend_Model/Friend.php · 跳跳虎1986/cwj - Gitee.com
  19. 解读即将施行的《网络安全审查办法》,开发者需要注意的
  20. 微信开发必备工具 php和java开发语言

热门文章

  1. Java中Properties类的操作配置文件
  2. 深度学习_算法工程师 6 万字总结算法面试中的深度学习基础问题
  3. 矩阵运算_Eigen使用_旋转矩阵/角轴/欧拉角/四元数相互转换
  4. ICCV2019-FSGAN:实现任意两张人脸图片换脸的GAN方法
  5. tensorflow学习笔记(5)卷积神经网络(CNN)
  6. App客户端性能测试点总结
  7. bzoj 1604 奶牛的邻居
  8. 隐藏WIN10资源管理器中的3D对象文件夹
  9. centos7.4 update git
  10. 基于Kubernetes集群部署skyDNS服务