환기가 매우 잘 안되는 컴퓨터를 사용하고 있으며 온도가 때때로 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