At Tue, 22 Jun 2010 12:06:04 -0400,
Marko SchÃtz Schmuck wrote:
>
> I noticed that the sensor_temperature script frequently is called out
> of order: the call for the "normal" event comes before the call for
> the "critical-over" event.
after experimenting some more with the events delivered by powerd, it
seems that some events are lost. I had counters that counted +1 for
every critical-over and -1 for every normal event and never saw
any positive values in the counters only increasingly negative
values.
I now call the following script for normal as well as critical-over
events (onestop alone sometimes left the process around, so I added
the pkill...):
#!/bin/sh
STAT0=`envstat -d coretemp0 | tail -1`
CORETEMP0=`echo $STAT0 |sed -e "s|cpu[[:digit:]]
temperature:[[:space:]]*\([[:digit:]]*\)\..*|\1|"`
CRITTEMP0=`echo $STAT0 |sed -e "s|cpu[[:digit:]]
temperature:[[:space:]]*[[:digit:]]*\.[[:digit:]]*[[:space:]]*\([[:digit:]]*\)\..*|\1|"`
STAT1=`envstat -d coretemp1 | tail -1`
CORETEMP1=`echo $STAT1 |sed -e "s|cpu[[:digit:]]
temperature:[[:space:]]*\([[:digit:]]*\)\..*|\1|"`
CRITTEMP1=`echo $STAT1 |sed -e "s|cpu[[:digit:]]
temperature:[[:space:]]*[[:digit:]]*\.[[:digit:]]*[[:space:]]*\([[:digit:]]*\)\..*|\1|"`
if [ $CORETEMP0 -lt $CRITTEMP0 -a $CORETEMP1 -lt $CRITTEMP1 ] ; then
echo "estd_flags=\"-l 35 -h 50 -b -M 1200\"" >/etc/rc.conf.d/estd
/etc/rc.d/estd onestop
pkill -f sbin/estd
rm -f /var/run/estd.pid
/etc/rc.d/estd onestart
elif [ $CORETEMP0 -ge $DRITTEMP0 -o $CORETEMP1 -ge $CRITTEMP1] ; then
echo "estd_flags=\"-l 99 -h 100 -b -M 600\"" >/etc/rc.conf.d/estd
/etc/rc.d/estd onestop
pkill -f sbin/estd
rm -f /var/run/estd.pid
/etc/rc.d/estd onestart
fi
Best regards,
MarkoAttachment:
pgpcD76iNzea5.pgp
Description: PGP signature