Именно так я решил свои проблемы с перегревом, которые были вызваны не определенным процессом, а неспособностью моего ноутбука рассеивать тепло, вызванное высокой нагрузкой на процессор в течение более длительных периодов времени. Основное отличие от решения, предлагаемого самим da code monkey, заключается в том, что я использую масштабирование частоты процессора вместо использования cpulimit в конкретном процессе. Так как у меня установлен и работает Psensor, я использую Psensor. Демон, подобный предложенной обезьяной кода, также должен работать, однако требуются два порога (мин и макс). В Psensor (Настройки датчика-> Тревога) я устанавливаю сигнал тревоги для соответствующего датчика, если он становится выше, чем верхний порог (я использую 85), или ниже, чем нижний порог (я использую 80). В Preferences-> Sensors-> Script, выполняемом при возникновении тревоги, я называю свой скрипт heatcontrol.sh следующим образом:
/ALLUSER/heatcontrol.sh powersave ondemand 82
Первый параметр - это допустимый scaling_governor, который уменьшает частоту процессора, например, powersave. Второй параметр по умолчанию - scaling_governor - ondemand для большинства систем. Третий параметр - это температура между нижним и верхним порогом (точное значение не имеет значения). Psensor добавляет еще два параметра: идентификатор датчика и сообщаемую температуру.
И это мой скрипт heatcontrol.sh:
#!/bin/bash
# TempNZ is temperature reported by Psensor; strip of trailing °C
TempNZ=$5
bnum=`expr index "$TempNZ" "°"`
if (( bnum < 2 )); then
echo "ERROR"
fi
TempNZ=${TempNZ:0:$(($bnum-1))}
STR=$1
# Is this a low threshold alarm?
if [ "$TempNZ" -le "$3" ]; then
STR=$2
fi
sudo sh -c "echo '$STR' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
# echo new scaling_governor
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# play sound - audio feedback - optional
paplay /usr/share/sounds/ubuntu/stereo/message-new-instant.ogg
У меня отлично работает (UBUNTU 14.04 LTS).
Будучи новичком в Linux и Bash, я использовал ряд ресурсов, в том числе:
https://wiki.archlinux.org/index.php/CPU_frequency_scaling
http://elinux.org/Jetson/Performance#Viewing_the_current_CPU_status