換気が非常に悪いコンピュータを使用しており、温度は時々100℃に達します。哀れなのはもう換気できません(」より大きなファンをインストールしてください「これは適切なソリューションではありません。)CPUが100℃に達すると、システムは「激しく」停止します(ただし終了します)。システムはlm-sensors-3を使用してUbuntu 10.10を実行しています(インストールされたパッケージはlm-sensors 1: 3.1.2-6)
どのプログラムが問題を引き起こしているのかを知っている(非常にトリッキーなメディアプレーヤー)、温度が98℃に達すると、大きな中断なしにしばらく停止し、温度に達すると動作するようにすることができます... ...再起動します。たとえば、90℃です。
ルーメンセンサーで直接同様の操作を実行できますか?それとも、ルーメンセンサーを定期的にチェックし、温度に応じて「作業を実行する」独自のプロセスを作成する必要がありますか?
よろしくお願いします。
答え1
出力が何であるかによって異なりますsensors
。あなたのものが私と同じなら:
% sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +44.0°C (high = +70.0°C)
その後、次のスクリプトを使用してそれに応じて調整できます。TEMP_STOP
また、TEMP_START
使用したい行をフィルタリングする正規表現も変更する必要がありますsensors
。関数grep
のパラメータですtemp
。
#!/bin/bash
TEMP_STOP=98
TEMP_START=90
temp() {
sensors | grep '^temp1:' | sed -e 's/.*: \+\([+-][0-9.]\+\)°C.*$/0\1/'
}
while true; do
TEMP=$(temp)
# keep waiting until temp is too hot
while [ $(echo "$TEMP < $TEMP_STOP" | bc) = 1 ]; do
sleep 10
TEMP=$(temp)
done
echo temp $TEMP too hot, stopping.
# now wait for it to cool down...
while [ $(echo "$TEMP > $TEMP_START" | bc) = 1 ]; do
sleep 10
TEMP=$(temp)
done
echo ok now, restarting...
done