Linux使用ps+grep+wc统计某正在运行进程的数量

在开启一个新的任务进程之前,需要获取 Linux 服务器当前正在运行某个进程的数量,以便对新进程的添加进行限制,我们知道 ps 命令可以查看进程, grep 命令可以对内容进行检索, wc 命令可以统计,我们把这三个命令结合起来就可以实现需求了。

直接上命令:

ps -ef | grep queue | grep -v grep | wc -l

具体参数是可以调整的,命令的意思就是查找含有 queue 关键词的进程(去掉 grep 本身),输出找到的进程数量。

运行结果:

[root@localhost ~]# ps -ef | grep queue | grep -v grep
root      4552  2822  0 10:14 ?        00:00:00 php yii parse-queue/listen 10
root      4553  2822  0 10:14 ?        00:00:00 php yii queue/listen 10
[root@localhost ~]# ps -ef | grep queue | grep -v grep | wc -l
2

可以看到这里有两个队列监听进程中含有 queue

结合一下 php

$cmd = 'ps -ef | grep api/import | grep -v grep | wc -l' . ' 2>&1';
exec($cmd, $out);
reset($out);
// 如果含关键字"api/import"进程数量大于1,则阻止新建进程
if (isset($out[0]) && intval($out[0]) > 1) {
    return ['status' => 'error', 'message' => '服务器繁忙,请稍后重试'];
}

真实环境中使用请多测试几次,保证搜索的关键字唯一,不要把别的命令也统计进去了。

标题:Linux使用ps+grep+wc统计某正在运行进程的数量

原文链接:https://beltxman.com/2661.html

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

Scroll to top