Vai al contenuto

Script per Linux per monitorare il comportamento di una applicazioni e killarla quando succhiano troppe risorse.

In un momento Creativo mi sono scritto un piccolo script fatto in bash , per monitorare il comportamento di una determinata Applicazione sul mio server linux.

Se l’applicazione supera i 45 secondi , con la cpu al 100% viene terminata.

Molte volte capita che se un applicazione supera i 45 secondi, inizierà a creare problemi sul server Bloccando tutti i suoi servizi.

Eccovi il codice:

#!/bin/bash

# Definisci la soglia di tempo (in secondi) e l'utilizzo della CPU (%) per il quale terminare l'applicazione
THRESHOLD_TIME=45
THRESHOLD_CPU=100

# Loop infinito per monitorare continuamente le applicazioni
while true; do
    # Trova i PID delle applicazioni con il nome "NomeApp"
    PIDS=$(pgrep -f NomeApp)

    # Loop sui PID trovati
    for PID in $PIDS; do
        # Ottieni il tempo totale di CPU dall'output di 'ps' in secondi
        CPU_TIME=$(ps -p $PID -o etimes=)

        # Ottieni l'utilizzo della CPU dall'output di 'ps'
        CPU_USAGE=$(ps -p $PID -o %cpu= | awk '{print $1}')

        # Se il tempo totale supera la soglia e l'utilizzo della CPU è al 100%
        if [ $CPU_TIME -ge $THRESHOLD_TIME ] && [ $(printf "%.0f" $CPU_USAGE) -eq $THRESHOLD_CPU ]; then
            echo "Terminazione dell'applicazione con PID $PID (Tempo: $CPU_TIME secondi, CPU: $CPU_USAGE%)"
            kill -9 $PID  # Termina l'applicazione
        fi
    done

    sleep 5  # Attendere 5 secondi prima di controllare nuovamente
done

Pubblicato inSoftware

Sii il primo a commentare

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *