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的FTP学习(四)
Oct 09 PHP
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
php实现转换html格式为文本格式的方法
May 16 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
PHPTree――php快速生成无限级分类
Mar 30 PHP
php中file_get_contents()函数用法实例
Feb 21 PHP
浅谈php://filter的妙用
Mar 05 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
laravel开发环境homestead搭建过程详解
Jul 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
解析php DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
PHP查询快递信息的方法
2015/03/07 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
django实现用户登陆功能详解
2017/12/11 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
启动一个线程是用run()还是start()
2016/12/25 面试题
关于幼儿的自我评价
2013/12/18 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
python在package下继续嵌套一个package
2022/04/14 Python
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript