How to monitor system temperature on Linux

In most cases, you are not supposed to be worried about the temperature of your computer. Barring manufacturing defects, hardware is designed so that its temperature does not exceed maximum operating temperature. But even without any hardware fault, overheating can occur due to various software issues, e.g., buggy graphics card driver, misconfigured fan control program, malfunctioning CPU frequency scaling daemon, etc. As pointed out by Ben in the comment, another quite common cause for overheating is dust, dirt and debris clogging the cooling system (fan, heat sink and ventilation openings). I can imagine this could happen quite often with older hardware.

Overheating may become serious enough to cause permanent damage on your hardware. So watch out for any overheating issue in your system. Even better, have temperature monitoring system in place, so that you will be alerted if system temperature suddenly goes up.

In this tutorial, I will describe how to monitor system temperature on Linux.

There are several user space tools on Linux, which allow you to check and monitor temperature of various system components.

lm-sensors is a software tool that draws from hardware embedded sensors to monitor temperatures, voltage, humidity and fans. hddtemp is a tool that can measure the temperature of hard drives from S.M.A.R.T. readings. psensor is a graphical front-end for temperature monitoring, which visualizes temperature readings from CPUs, NVidia/ATI/AMD GPUs, hard disks, etc.

In the following, I will describe how to set up psensor to monitor the temperature of CPUs and hard drives.

Install psensor on Linux Desktop

psensor can visualize system temperature based on the information obtained from other tools such as lm-sensors and hddtemp. Thus you need to install psensor along with those prerequisites.

To install psensor on Debian or Ubuntu:

$ sudo apt-get install lm-sensors hddtemp psensor

Another way to install psensor on Ubuntu is to use their PPA repository which contains a more recent version of psensor.

$ sudo add-apt-repository ppa:jfi/ppa
$ sudo apt-get update
$ sudo apt-get install lm-sensors hddtemp psensor

To install psensor on Fedora:

$ sudo yum install lm_sensors hddtemp
$ sudo yum install gcc gtk3-devel GConf2-devel lm_sensors-devel cppcheck libatasmart-devel libcurl-devel json-c-devel libmicrohttpd-devel help2man libnotify-devel libgtop2-devel make
$ wget
$ tar xvfvz psensor-
$ cd psensor-
$ ./configure
$ make
$ sudo make install

Due to the requirement for GTK3 libraries, psensor is not compatible with the GNOME 2 desktop of CentOS or RHEL 6.

Configure psensor on Linux

Before launching psensor, you need to configure lm_sensors and hddtemp first.

lm_sensors configuration

To configure lm_sensors, run the following command. Choose YES to every question.

$ sudo sensors-detect

This command will probe for and detect embedded sensors in your hardware (including CPUs, memory controllers, I/O chips), and automatically determine which driver modules need to be loaded to check temperature on your system.

Once sensor probing is completed, you will be asked to add detected driver module(s) to /etc configuration, so they can be loaded automatically upon boot.

On Debian or Ubuntu, detected driver modules will be added to /etc/modules. On Fedora, the driver information will be added to /etc/sysconfig/lm_sensors.

Next, proceed to load necessary modules as follows.

On Ubuntu:

$ sudo service module-init-tools start

On Debian:

$ sudo /etc/init.d/kmod start

On Fedora:

$ sudo service lm_sensors start

hddtemp configuration

You also need to launch hddtemp which monitors the temperature of hard drives.

Run the following command to launch hddtemp as a daemon. Replace "/dev/sda" with the disk drive to monitor on your system.

$ sudo hddtemp -d /dev/sda

Monitor System Temperature with psensor

To start monitoring temperature with psensor, simply run:

$ psensor

The psensor window will show a list of available sensors, and visualize temperature readings from these sensors. You can selectively enable or disable each sensor.

Optionally, you can set an alarm level for each sensor, so that you can be notified when the temperature from a sensor exceeds a threshold.

The default temperature unit used by psensor is Celsius. A recent version (0.7--0.8) of psensor can convert temperature unit between Celsius and Fahrenheit. If the version of psensor you are using is outdated (e.g., 0.6.x), and does not have unit conversion, install psensor from its PPA repository (for Ubuntu users) or build it from its source (for Debian users).

Subscribe to Xmodulo

Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.

Support Xmodulo

Did you find this tutorial helpful? Then please be generous and support Xmodulo!

The following two tabs change content below.
Dan Nanni is the founder and also a regular contributor of He is a Linux/FOSS enthusiast who loves to get his hands dirty with his Linux box. He likes to procrastinate when he is supposed to be busy and productive. When he is otherwise free, he likes to watch movies and shop for the coolest gadgets.

10 thoughts on “How to monitor system temperature on Linux

  1. Nice post Dan,

    I would be very interested in another post on monitoring PDU's voltage and being notified by sms/email if threshold is surpassed.

    A faulty power supply or constant irregular A/C coming into power supply over time can potentially damage all computer electrical components. Yes UPS helps but not all computers have the luxury of having UPS.

    • The recent version ( of psensor does support unit conversion between Celsius and Fahrenheit. However, psensor package available on Debian or Ubuntu default repositories is outdated (e.g., 0.6.x), and does not have that feature. If you are using Ubuntu, you can try their PPA to install the updated psensor. Or you can just build it from its source. I updated the post for this info.

  2. Dan, Based on my experience, the lead paragraph of your FAQ omits THE NUMBER ONE cause of computer heat issues, namely dust, dirt and debris clogging the cooling system (fan, heat sink and ventilation openings). And this is the reason why every system I sell or service gets software such as Linux Psensor or Windows CoreTemp. And I cannot tell you how many systems I have serviced with compressed air, a cheap artist's brush and q-tips to remove the dirt, grease, cat hair and who knows what else.

    Do the readers of this FAQ a good turn and rewrite the lead... Ben Myers

  3. Thanks a lot for this tutorial, this tutorial really includes everything you need for monitoring temperatures. I have one question tho, is it possible to control FAN speeds in Linux as well? On Windows I use SpeedFan, but Linux does not have such tool afaik. Thanks.

    • If you like SpeedFan under Windows, try CoreTemp for simple elegant presentation of the temperatures of each core.

Leave a comment

Your email address will not be published. Required fields are marked *