Admins eHow SysAdmin Tips & Tricks

August 22, 2014

Kill a process with high CPU usage in Linux

Filed under: linux — Tags: , , , , , — admin @ 5:19 pm

Sometimes you may need to kill hanged processes with high CPU usage automatically. the following script can help you to do it :

#!/bin/bash
PROCESSNAME=''
HL=10

IFS=$'\n'
L=$(ps aux | grep $PROCESSNAME)
for fn in $L; do
        PID=$(echo $fn | awk '{print $2'})
        LOAD=$(echo $fn | awk '{print $3'})
        if [ $(echo "$LOAD > $HL" | bc -l ) -eq 1 ]
        then
                kill -9 $PID
                echo "Killed $PID"
        fi
done

Set PROCESSNAME to the process name which you want to be checked and HL to high load threshold.
Please note the load is based what ‘ps’ command reports and not what you see inside ‘top’.

  • Michelle Sullivan

    Seriously? You pipe a calculation into bc? Innovative but really really … um platform limiting…

    Try this:

    LOAD=$(echo $fn | awk ‘{print $3’ | cut -f1 -d.})
    if [ ${LOAD} -gt ${HL} ]

    then you don’t need to limit it to bash – you can use sh … and it’ll work across platforms.

    Regards,

    Michelle

Powered by WordPress