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分页函数
Jul 08 PHP
PHP编码规范-php coding standard
Mar 16 PHP
php flv视频时间获取函数
Jun 29 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
php自定义扩展名获取函数示例
Dec 12 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 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
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
PHP+javascript液晶时钟
2006/10/09 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
简单介绍Python中的RSS处理
2015/04/13 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python实现的栈(Stack)
2018/01/26 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
Python自动抢红包教程详解
2019/06/11 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
python基于event实现线程间通信控制
2020/01/13 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
python 装饰器的使用示例
2020/10/10 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
预备党员自我批评思想汇报
2014/10/10 职场文书
五年级学生评语大全
2014/12/26 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang