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 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php禁止某ip或ip地址段访问的方法
Feb 25 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 PHP
php中namespace及use用法分析
Dec 06 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
php算法实例分享
2015/07/14 PHP
javascript一些不错的函数脚本代码
2008/09/10 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python 远程统计文件代码分享
2015/05/14 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
python迭代器常见用法实例分析
2019/11/22 Python
Python函数调用追踪实现代码
2020/11/27 Python
原装进口全世界:天猫国际
2016/08/03 全球购物
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
写好自荐信的几个要点
2013/12/26 职场文书
大学生活动策划方案
2014/02/10 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS