我有一台通风非常差的计算机,有时温度会达到 100°C。这可怜的东西不能再通风了(”放一个更大的风扇“不是一个合适的解决方案)。当 CPU 达到 100°C 时,机器会“剧烈”停止(只是关闭)。该机器正在运行带有 lm-sensors-3 的 Ubuntu 10.10(安装的软件包是 lm-sensors 1:3.1 .2-6)
我知道是什么程序导致了这个问题(一个要求非常高的媒体播放器),当温度达到 98°C 时,我实际上可以将其停止一段时间,而不会造成重大中断,并在温度达到……比如说 90°C 时再次启动它。
是否可以直接通过流明传感器执行类似的操作,或者我是否必须创建自己的流程来定期检查流明传感器并根据温度“执行其操作”?
先感谢您。
答案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