www.adminn.cn
站长正能量分享网!

Linux中用PHP判断程序运行状态的2个方法

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

这篇文章主要介绍了Linux中用PHP判断程序运行状态的2个方法,需要的朋友可以参考下。

有时候在服务器上面写一些脚本的时候,经常要放到crontab里面定时运行。时间长了就有一个问题,那就是程序重复运行消耗太多的资源,怎么处理呢?下面我写了两种方法:

第一种:用linux里面的正则匹配,代码如下:

  1. function ifrun($clsname,$bf = 0) 
  2.     //下面进行检测,如有一个进程正在运行,则不运行 
  3.     $str=shell_exec("/bin/ps ax > /home/root/".$clsname."_run.txt"); 
  4.     $str=shell_exec("/bin/grep -c '".$clsname.".php' /home/root/".$clsname."_run.txt"); 
  5.  
  6.     if($bf >0) 
  7.     { 
  8.         if($str >=$bf
  9.         { 
  10.             return 1; 
  11.         } 
  12.         else 
  13.         { 
  14.             return 0; 
  15.         } 
  16.     } 
  17.     else 
  18.     { 
  19.         if ($str>=2) 
  20.         { 
  21.            return 1; 
  22.         } 
  23.         else 
  24.         { 
  25.            return 0; 
  26.         } 
  27.     } 

调用:

if (ifrun('pooy',5)) {    die("pooy is running"); }

备注:pooy是程序pooy.php的名称!

第二种:把进程写到文件里面,然后用file函数去读取然后去匹配字符串,代码如下:

  1. system('ps -ef |grep wget > /root/pooy.txt'); 
  2. $arr=file('/root/pooy.txt'); 
  3. $total=count($arr); 
  4. for($i=0;$i<$total;$i++){ 
  5.   $count=array(); 
  6.    if(stristr($arr[$i],'www/pooy') !== FALSE) { 
  7.     //echo '"earth" not found in string'; 
  8.       $count[]='no'
  9.       break
  10.   } 
  11.  
  12.  
  13. if(count($count) >= 1 ) 
  14.     echo "A same programs are running"
  15.     exit(); 
  16. }else 
  17.     echo "start__________________________________________________"

注:”www/pooy” 是程序里面包含的字符串!

现在php程序在linux运行是否通畅多了呢?

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Linux中用PHP判断程序运行状态的2个方法》
文章链接:https://www.adminn.cn/news/7880.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

扫码支付后请联系右侧QQ发送下载地址!!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏