查看php 某个服务的进程数

复制代码
 查看进程就是使用ps命令而已,只不顾ps的参数太多了。

  使用php查询的话,必须要开启几个函数(可以执行外部程序的函数),参考官网:http://php.net/manual/zh/book.exec.php

  下面是在php进程中查询某个服务创建的进程数,比如httpd,mysqld,sshd.......


<?php
    function query_process_num($service){
        $res = array();
        exec("ps -ef | grep " . $service ." | wc -l", $res);
        return trim($res[0]) - 2;
    }
 
    echo query_process_num("httpd");
?>
  至于为什么要减2,可以看下面的代码:

<?php
    function query_process_num($service){
        $res = array();
        exec("ps -ef | grep " . $service, $res);
        print_r($res);//不处理直接输出
 
        unset($res);
        exec("ps -ef | grep " . $service . " | wc -l", $res);
        print_r($res);//统计输出
 
    }
 
    query_process_num("httpd");
?>
  输出如下:
~/tmp/test $ ps -ef | grep httpd       #命令行直接运行命令
    0 92193     1   0  7:09下午 ??         0:00.64 /usr/sbin/httpd -D FOREGROUND
   70 92194 92193   0  7:09下午 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
  502 94092 70178   0  7:30下午 ttys002    0:00.01 grep httpd
 ~/tmp/test $ php index.php            #使用php查询
Array
(
    [0] =>     0 92193     1   0  7:09下午 ??         0:00.64 /usr/sbin/httpd -D FOREGROUND
    [1] =>    70 92194 92193   0  7:09下午 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
    [2] =>   502 94109 94108   0  7:30下午 ttys002    0:00.00 sh -c ps -ef | grep httpd
    [3] =>   502 94111 94109   0  7:30下午 ttys002    0:00.00 grep httpd
)
Array
(
    [0] =>        4
)
  可以从上面的运行结果中就可以知道为什么要减2
复制代码

 

posted @   盘思动  阅读(3348)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2018-07-09 git clone 指定分支的内容
点击右上角即可分享
微信分享提示