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的控制语句
Oct 09 PHP
追求程序速度,而不是编程的速度
Apr 23 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
php中cookie的使用方法
Mar 29 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
PHP扩展安装方法步骤解析
Nov 24 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自定义函数返回多个值
2006/11/26 PHP
中篇:安装及配置PHP
2006/12/13 PHP
PHP数据类型的总结分析
2013/06/13 PHP
php 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
Node.js实现数据推送
2016/04/14 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中用Spark模块的使用教程
2015/04/13 Python
对python的输出和输出格式详解
2018/12/08 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
python 画条形图(柱状图)实例
2020/04/24 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
找工作最新求职信
2013/12/22 职场文书
关于安全的演讲稿
2014/05/09 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
社区服务活动小结
2014/07/08 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers