如果进程数量超过X数量,Bash脚本将终止一个进程

所以,我想知道是否有一种方法来查看是否可以使用bash杀死一个进程的PID,如果产生的X数量多于X的话。 例如:

假设我们有10个使用命令/ usr / bin / php运行的php进程,使用单独的PID运行。 如果它击中了10个进程,是否有办法用bash脚本杀死它? (我会让这个脚本全程运行在一个终端的前台)


恕我直言,你正在解决错误的问题。 我宁愿确保进程本身不能有多个实例(这里是一个实现清单),并通过某种指令堆栈提供指令。


用这种方式杀死东西不是一个好主意,但这是你问的。 试试这个(全部在一行上):

j=0; for i in `ps fax | grep '/usr/bin/php'  | grep -v grep | awk '{print $1}'`; do let j=j+1; if [ $j -ge 10 ]; then echo "Killing process $i"; kill $i; fi done

注意你在做什么。 HTH。


这对我有效:

#!/bin/bash

#PROGRAM_NAME=/usr/bin/php
PROGRAM_NAME="gedit"
MAX_INSTANCES=2
CURRENT_INSTANCES=0

while true
do
    sleep 1
    let CURRENT_INSTANCES=`ps aux | grep -c $PROGRAM_NAME`
    if [ "$CURRENT_INSTANCES" -ge "$MAX_INSTANCES" ];then
        killall $PROGRAM_NAME
        echo "killing program!"
        exit 0;
    fi
done
链接地址: http://www.djcxy.com/p/46409.html

上一篇: Bash script to kill a process if process count is over X amount

下一篇: How to kill all processes matching a name?