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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
PHP5.3.1 不再支持ISAPI
Jan 08 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
php中rename函数用法分析
Nov 15 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 PHP
php抽象方法和普通方法的区别点总结
Oct 13 PHP
laravel 解决crontab不执行的问题
Oct 22 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生成随机数的方法总结
2018/03/01 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
JS继承 笔记
2011/07/13 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
pyhton列表转换为数组的实例
2018/04/04 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
幼儿园中班下学期评语
2014/04/18 职场文书
2015元旦节寄语
2014/12/08 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
同乡会致辞
2015/07/30 职场文书
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
python使用torch随机初始化参数
2022/03/22 Python