首页 > 开发 > PHP > 正文

php判断linux下程序问题实例

2024-05-04 23:37:35
字体:
来源:转载
供稿:网友

这篇文章主要介绍了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. if($str >=$bf) 
  8. return 1; 
  9. else 
  10. return 0; 
  11. else 
  12. if ($str>=2) 
  13. return 1; 
  14. else 
  15. return 0;  
  16. //调用: 
  17. if (ifrun('pooy',5)) 
  18. die("pooy is running"); 
  19. //备注:pooy是程序pooy.php的名称! 
  20. //第二种:把进程写到文件里面,然后用file函数去读取然后去匹配字符串 
  21. system('ps -ef |grep wget > /root/pooy.txt'); 
  22. $arr=file('/root/pooy.txt'); 
  23. $total=count($arr); 
  24. for($i=0;$i<$total;$i++){ 
  25. $count=array(); 
  26. if(stristr($arr[$i],'www/pooy') !== FALSE) { 
  27. //echo '"earth" not found in string'; 
  28. $count[]='no'
  29. break
  30. if(count($count) >= 1 ) 
  31. echo "A same programs are running"
  32. exit(); 
  33. }else 
  34. echo "start__________________________________________________"
  35. //注:"www/pooy" 是程序里面包含的字符串! 
  36. //现在php程序在linux运行是否通畅多了呢? 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表