В прошлой заметке я рассказывал, как проверить температуру процессора семейства Core под Linux.
Под FreeBSD это делается еще проще, сначала необходимо загрузить модуль ядра, поддерживающий термальные сенсоры командой kldload coretemp.
Можно проверить, загружен ли модуль в данный момент командой kldstat
. После этого можно смотреть температуру всех ядер при помощи команды:
#sysctl -a | grep temperature
dev.cpu.0.temperature: 59
dev.cpu.1.temperature: 59
dev.cpu.2.temperature: 53
dev.cpu.3.temperature: 53
dev.cpu.4.temperature: 53
dev.cpu.5.temperature: 53
dev.cpu.6.temperature: 50
dev.cpu.7.temperature: 50
Как видно из вывода команды, текущая температура ядер находится в переменных sysctl вида dev.cpu.<номер ядра>.temperature
. Обратите внимание, что нумерация ядер начинается с нуля. Естественно, не составит труда написать шелл скрипт, который будет уведомлять о перегреве процессора.
Для того, чтобы проверить температуру ядер процессоров семейства Intel Core на Linux-системах можно воспользоваться утилитой lm_sensors. Он есть в стандартных репозиториях Centos и Debian.
Чтобы запустить сенсоры предварительно нужно детектировать их командой sensors-detect. Во многих ОС модуль, поддерживающий снятие данных с датчиков процессоров не загружен по умолчанию, чтобы его включить нужно выполнить команду modprobe coretemp. После того, как сенсоры обнаружены, их можно запустить командой sensors. Утилита выведет список всех ядер с их температурами. Вывод команды легко распарсить для автоматической проверки шелл-скриптом, который будет проверять температуру процессора, и отправлять уведомления при превышении порогового значения.