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 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
一个取得文件扩展名的函数
Oct 09 PHP
第一节--面向对象编程
Nov 16 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
PHP连接sql server 2005环境配置及问题解决
Aug 08 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
php实现微信分享朋友链接功能
Feb 18 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操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
php Session存储到Redis的方法
2013/11/04 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
jQuery treeview树形结构应用
2021/03/24 jQuery
机关门卫的岗位职责
2014/04/29 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
党员检讨书范文
2014/12/27 职场文书
反邪教学习心得体会
2016/01/15 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Django实现drf搜索过滤和排序过滤
2021/06/21 Python