当前位置:首页 > 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.   //下面进行检测,如有一个进程正在运行,则不运行 
  5.   $str=shell_exec("/bin/ps ax > /home/root/".$clsname."_run.txt"); 
  6.   $str=shell_exec("/bin/grep -c '".$clsname.".php' /home/root/".$clsname."_run.txt"); 
  7.   if($bf >0) 
  8.   { 
  9.     if($str >=$bf) 
  10.     { 
  11.       return 1; 
  12.     } 
  13.     else 
  14.     { 
  15.       return 0; 
  16.     } 
  17.   } 
  18.   else 
  19.   { 
  20.     if ($str>=2) 
  21.     { 
  22.       return 1; 
  23.     } 
  24.     else 
  25.     { 
  26.       return 0;  
  27.     } 
  28.   } 
  29. } 
  30. //调用: 
  31. if (ifrun('pooy',5)) 
  32. { 
  33.   die("pooy is running"); 
  34. } 
  35. //备注:pooy是程序pooy.php的名称! 
  36. //第二种:把进程写到文件里面,然后用file函数去读取然后去匹配字符串 
  37. system('ps -ef |grep wget > /root/pooy.txt'); 
  38. $arr=file('/root/pooy.txt'); 
  39. $total=count($arr); 
  40. for($i=0;$i<$total;$i++){ 
  41.  $count=array(); 
  42.   if(stristr($arr[$i],'www/pooy') !== FALSE) { 
  43.   //echo '"earth" not found in string'; 
  44.    $count[]='no'; 
  45.    break; 
  46.  } 
  47. } 
  48. if(count($count) >= 1 ) 
  49. { 
  50.   echo "A same programs are running"; 
  51.   exit(); 
  52. }else 
  53. { 
  54.   echo "start__________________________________________________"; 
  55. } 

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

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

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

Tags: php判断linux程序问题

分享到: