7 votos

¿Existe una app que me notificará (en el centro de notificaciones) si un proceso está utilizando un porcentaje alto de la CPU durante un período determinado de tiempo?

El otro día, estaba sentado en un café de trabajo, cuando miré hacia abajo para encontrar que el 25% de mi batería se quedó.

Miré en mi Monitor de actividad y vi que el proceso de la máquina del tiempo iba en 90% por un tiempo (como yo lo estaba viendo).

¿Hay aplicaciones que pueden Notificarme si un proceso está en un nivel determinado durante un cierto periodo de tiempo?

6voto

Puede ejecutar un script como este cada minuto con cron o launchd:

#!/bin/bash

cpulimit=50
prefix=${TMPDIR}cron_cpu
current=$(ps -erco %cpu,command | tail -n+2 | sed 's/^ *//')
echo "$current" > $prefix$(date +%s)
a=($prefix*); for ((i=0;i<=${#a[@]}-3;i++)); do rm "${a[i]}"; done
[[ $(awk '{s+=$1}END{printf "%i",s}' <<< "$current") -lt $cpulimit ]] && exit
averages=$(awk '{cpu=$1;sub(/[^ ]+ /,"");a[$0]+=cpu;c[$0]++}END{for(i in a){printf "%.1f %s\n",a[i]/c[$0],i}}' $prefix* | sort -rn)
if [[ $(awk '{s+=$1}END{printf "%i",s}' <<< "$averages") -ge $cpulimit ]]; then
    terminal-notifier -title "CPU use" -message "$(head -n5 <<< "$averages" | paste -sd / -)"
fi

Si el promedio de uso de la CPU en los últimos tres muestras de más de 50%, se utiliza el terminal-notificador para mostrar los procesos que utiliza la mayoría de la CPU.

Usted podría también utilizar MenuMeters para mostrar el total de uso de la CPU en la barra de menú:

O ejecutar un script como este con GeekTool:

for i in {1..4}; do ps -erco %cpu,command | tail -n+2; sleep 1; done | sed 's/^ *//' | grep -v GeekTool | awk '{cpu=$1;sub(/[^ ]+ /,"");a[$0]+=cpu;c[$0]++}END{for(i in a){printf "%.1f %s\n",a[i]/c[$0],i}}' | sort -rn

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X