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读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
Thinkphp的volist标签嵌套循环使用教程
Jul 08 PHP
通过php修改xml文档内容的方法
Jan 23 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
Mar 17 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
浅析PHP数据导出知识点
Feb 17 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 无法载入mysql扩展
2010/03/12 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
php实例分享之二维数组排序
2014/05/15 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
python生成圆形图片的方法
2020/03/25 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
Python reques接口测试框架实现代码
2020/07/28 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
护士自荐信范文
2013/12/15 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
严以用权学习心得体会
2016/01/12 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
pandas数值排序的实现实例
2021/07/25 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android