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


Posted in PHP onMay 04, 2014

有时候在服务器上面写一些脚本的时候,经常要放到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 minixml详解
Jul 19 PHP
解析php下载远程图片函数 可伪造来路
Jun 25 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
php使用GeoIP库实例
Jun 27 PHP
PHP不用递归遍历目录下所有文件的代码
Jul 04 PHP
ThinkPHP安装和设置
Jul 27 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
php获取是星期几的的一些常用姿势
Dec 15 PHP
PHP CURL获取返回值的方法
May 04 #PHP
PHP判断远程图片是否存在的几种方法
May 04 #PHP
一个PHP的ZIP压缩类分享
May 04 #PHP
PHP生成自定义长度随机字符串的函数分享
May 04 #PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
May 04 #PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 #PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 #PHP
You might like
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
Yii框架form表单用法实例
2014/12/04 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
vue组件name的作用小结
2018/05/23 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python求解正态分布置信区间教程
2019/11/20 Python
appium+python adb常用命令分享
2020/03/06 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
升职自荐信范文
2013/10/05 职场文书
农贸市场管理制度
2014/01/31 职场文书
2014年应急工作总结
2014/12/11 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
Redis三种集群模式详解
2021/10/05 Redis
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android