当前位置:首页 > PHP教程 > php应用 > 列表

php判断linux下程序问题实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-10 11:03:57 浏览: 评论:0 

这篇文章主要介绍了php判断linux下程序问题,可有效的控制Linux下crontab控制程序定时执行时资源调配问题,非常具有实用价值,需要的朋友可以参考下,本文实例讲述了php判断linux下程序问题,分享给大家供大家参考,具体如下:

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

  1. //第一种:用linux里面的正则匹配 
  2. function ifrun($clsname,$bf = 0) 
  3.   //下面进行检测,如有一个进程正在运行,则不运行 
  4.   $str=shell_exec("/bin/ps ax > /home/root/".$clsname."_run.txt"); 
  5.   $str=shell_exec("/bin/grep -c '".$clsname.".php' /home/root/".$clsname."_run.txt"); 
  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.   } 
  28. //调用: 
  29. if (ifrun('pooy',5)) 
  30.   die("pooy is running"); 
  31. //备注:pooy是程序pooy.php的名称! 
  32. //第二种:把进程写到文件里面,然后用file函数去读取然后去匹配字符串 
  33. system('ps -ef |grep wget > /root/pooy.txt'); 
  34. $arr=file('/root/pooy.txt'); 
  35. $total=count($arr); 
  36. for($i=0;$i<$total;$i++){ 
  37.  $count=array(); 
  38.   if(stristr($arr[$i],'www/pooy') !== FALSE) { 
  39.   //echo '"earth" not found in string'; 
  40.    $count[]='no'
  41.    break
  42.  } 
  43. if(count($count) >= 1 ) 
  44.   echo "A same programs are running"
  45.   exit(); 
  46. }else 
  47.   echo "start__________________________________________________"

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

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

希望本文所述对大家的php程序设计有所帮助。

Tags: php判断linux程序问题

分享到: