Ciao a tutti stavo cercando di fare uno script bash che controlla se ci sono dei processi che superano il 50% di utilizzo della cpu, in caso positivo li termina tramite il comando kill.
Per sapere i processi in quel momento basta redirigere l'output del comando ps -aux su un file e poi leggere da questo stesso file.
Riporto qua sotto un pezzo del file di input dato dal comando ps -aux(anche se non ha una formattazione comprensibile):

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 2528 1408 ? Ss 12:24 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S< 12:24 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 12:24 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S< 12:24 0:00 [ksoftirqd/0]

Avendo questo tipo di file in input a me serve solo leggere l'user il pid ( necessario per poter dare il comando kill) e il valore d cpu; confrontare se questo valore è maggiore di 50 (anche se non so come gestire la virgola) e se è maggiore killarlo.

Posto qua sotto quello che mi è venuto in mente per fare questo script:

codice:
#!/bin/bash

while true 
do 
	sleep 15
	ps -aux > tmp
	read line
	while read user pid cpu others < tmp
	do 
	if [ $cpu -gt 50 ]
	then 
	kill -9 $pid
	fi
	done
done