Daemon: Libera CPU - Mata processos
Publicado por Fernando da Silva Pio 11/06/2007
[ Hits: 9.004 ]
Esse daemon monitora a cada 60 segundos todos os processos e "mata" o que estiver consumindo CPU acima do valor definido no script.
Cada processo finalizado, é adicionado ao log que está em /var/log/nome_do_script.log as seguintes informações:
- Nome do processo finalizado
- PID
- Uso de CPU
- Usuário dono desse processo
- Data e hora em que foi finalizado
Esse script fiz correndo apenas para ganhar nota em um trabalho na faculdade, por isso fiquem a vontade para alterar.
#!/bin/bash
#
# ---------------------------------monitora_CPU.sh------------------------------------------------------+
# Monitora o consumo de CPU de cada pocesso. Finaliza o processo se o uso de CPU for
# maior que o uso definido na variável LIMITE_CPU.
#
# Um log dos processos finalizados será criado em /var/log/nome_do_script.log
#
# Execute-o em bg
# Desenvolvido por: Fernando Pio (fernando_pio@yahoo.com.br)
#--------------------------------------------------------------------------------------------------------------+
#
#Declarações Globais
SCRIPT=${0##*/}
ADMIN=$(whoami)
PS_TEMP=$(mktemp /tmp/ps_temp.XXXX)
LIMITE_CPU=80
#Verificação de Sanidade
#Script Principal
if [ $ADMIN = root ] ; then
while ( true ) ; do
ps -eo user,%cpu,pid,comm --no-headers > $PS_TEMP
while read linha ; do
CPU=$(echo "$linha" | cut -c10,11)
if [ $CPU -gt $LIMITE_CPU ] ; then
echo "Programa: $(echo "$linha" | cut -c21-)" >> /var/log/$SCRIPT.log
echo "PID: $(echo "$linha" | cut -c14-19)" >> /var/log/$SCRIPT.log
echo "Uso de CPU: $(echo "$linha" | cut -c10-13)%" >> /var/log/$SCRIPT.log
echo "Usuário: $(echo "$linha" | cut -c1-9)" >> /var/log/$SCRIPT.log
kill -9 $(echo "$linha" | cut -c14-19)
if [ $? -eq 0 ] ; then
echo -e "Finalizado em: $(date +'%d de %B de %Y as %H:%M:%S')\n" >> /var/log/$SCRIPT.log
else
echo -e -n '\e[31;1mATENCAO: \e[m' >> /var/log/$SCRIPT.log
echo "Houve um erro e o programa nao pode ser finalizado!" >> /var/log/$SCRIPT.log
echo -e -n '\e[33;1mOcorrido em: \e[m' >> /var/log/$SCRIPT.log
echo -e "$(date +'%d de %B de %Y as %H:%M:%S')\n" >> /var/log/$SCRIPT.log
fi
fi
done < $PS_TEMP
sleep 60
done
else
echo "O programa so pode ser executado pelo root!"
fi
Converter arquivos CSV para Ldif
BitchX IRC - download e instalação
Pegando IP sem saber qual interface está sendo usada
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Sway no Arch Linux: configuração Inicial sem enrolação
Resolvendo o bloqueio do Módulo Warsaw no Arch Linux (Porta 30900)
Meu kde connect não funciona no debian (2)
BigLinux 2026 Wallpapers animado (2)
Porque o elementaryOS adotou flatpaks (3)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 [RESOLVIDO] (10)









