Un timer avec systemd va envoyé une alerte si mon processeur dépasse la limite que je lui donne.
Cette alerte est inscrite dans les logs mais peut-être aussi visuelle
1) écrire un petit script qui teste la chaleur avec la commande "sensors" :
/usr/local/bin/temperatures-alert.sh
#!/usr/bin/env bash
# test de température des processeurs
export DISPLAY=:0.0
CORE='Core '
if [ -z $1 ]; then
max=100
else
max=$1
fi
declare -a cpus=()
cpus=$(sensors |grep -E "$CORE(.*): (.*)" |awk -F" " '{print $3}' |grep -Eo "[0-9]{2,3}")
for cpu in ${cpus[@]}; do
if [ "$cpu" -gt "$max" ]; then
msg="[temperature CPU] ${cpu} > ${max}"
logger -p daemon.alert "${msg}"
#notify-send "$msg" -t 000 -u critical -i dialog-warning
#(echo "${msg}"; sleep 3) | dzen2 -h 70 -fg '#cc0000' -fn lime
fi
done
exit 0
ici possibilité d'utiliser :
-notify-send ( paquet : libnotify)
-dzen2 (meme paquet)
-les logs
journalctl -rb -p err
il reste a écrire les unités systemd utilisateur :
/home/MONLOGIN/.config/systemd/user/temp-notify@.service
[Unit]
Description=Notifier si la température d'un cpu dépasse %i°C
[Service]
Type=oneshot
ExecStart=/bin/bash /usr/local/bin/temperatures-alert.sh %i
[Install]
WantedBy=graphical-target
# systemctl --user daemon-reload
# systemctl --user start temp-notify@100.service
/home/MONLOGIN/.config/systemd/user/temp-notify@.timer
[Unit]
Description=un cpu chauffe t-il trop ? au dessus de %i°C ?
# verification par : systemctl list-timers
[Timer]
Unit=temp-notify@%i.service
OnBootSec=41min
OnUnitActiveSec=77min
[Install]
WantedBy=timers.target
# systemctl --user enable temp-notify@100.timer
# systemctl --user list-timers
ps: un contrôle toute les 77 minutes c'est pas énorme ! trop peu ?
il ne me reste plus qu'a lancer mon timer en passant en paramètre ma température maximum
systemctl --user enable temp-notify@40.timer
Me voila paré pour (encore) le plus chaud été du siècle bien sur, la meilleure solution : des grandes vacances sans informatique