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

2015-01-24信息快讯网

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

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

第一种:用linux里面的正则匹配

function ifrun($clsname,$bf = 0)
{
    //下面进行检测,如有一个进程正在运行,则不运行
    $str=shell_exec("/bin/ps ax > /home/root/".$clsname."_run.txt");
    $str=shell_exec("/bin/grep -c '".$clsname.".php' /home/root/".$clsname."_run.txt");

    if($bf >0)
    {
        if($str >=$bf)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
    else
    {
        if ($str>=2)
        {
           return 1;
        }
        else
        {
           return 0; 
        }
    }
}

调用:

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

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

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

system('ps -ef |grep wget > /root/pooy.txt');
$arr=file('/root/pooy.txt');
$total=count($arr);
for($i=0;$i<$total;$i++){
  $count=array();
   if(stristr($arr[$i],'www/pooy') !== FALSE) {
    //echo '"earth" not found in string';
      $count[]='no';
      break;
  }

}

if(count($count) >= 1 )
{
    echo "A same programs are running";
    exit();
}else
{
    echo "start__________________________________________________";
}

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


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

PHP实现设计模式中的抽象工厂模式详解
php中字符集转换iconv函数使用总结
PHP生成网站桌面快捷方式代码分享
PHP中执行cmd命令的方法
PHP @ at 记号的作用示例介绍
在Win7 中为php扩展配置Xcache
在win7中搭建Linux+PHP 开发环境
PHP中echo,print_r与var_dump区别分析
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
PHP中的output_buffering详细介绍
php实现的Timer页面运行时间监测类
PHP之autoload运行机制实例分析
一个图片地址分解程序(用于PHP小偷程序)
PHP中几个可以提高运行效率的代码写法、技巧分享
从零开始学YII2框架(六)高级应用程序模板
PHP面向对象程序设计之类常量用法实例
PHP面向对象程序设计之接口用法
PHP+FastCGI+Nginx配置PHP运行环境
基于PHP的简单采集数据入库程序【续篇】
在PHP中运行Linux命令并启动SSH服务的例子
PHP按行读取文件时删除换行符的3种方法
PHP CURL获取返回值的方法
PHP判断远程图片是否存在的几种方法
一个PHP的ZIP压缩类分享
PHP生成自定义长度随机字符串的函数分享
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
php获取网卡的MAC地址支持WIN/LINUX系统
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
PHP include任意文件或URL介绍
php计算当前程序执行时间示例
PHP中批量生成静态html(命令行下运行PHP)
强制PHP命令行脚本单进程运行的方法
用PHP和Shell写Hadoop的MapReduce程序
适用于抽奖程序、随机广告的PHP概率算法实例
PHP程序漏洞产生的原因分析与防范方法说明
php判断ip黑名单程序代码实例
PHP运行SVN命令显示某用户的文件更新记录的代码
©2014-2024 dbsqp.com