Skip to content

How to Check CPU Temperature in Linux (sensors Command)

Updated 6 min read

Updated: 12 October 2026 · Applies to: lm-sensors 3.6 on Ubuntu 24.04 and 26.04, Debian 13, AlmaLinux 10 and Fedora 44, ipmitool 1.8.19, tested

The Linux command to check CPU temperature is sensors, from the lm-sensors package. Install it with sudo apt install lm-sensors (Ubuntu, Debian, Kali) or sudo dnf install lm_sensors (AlmaLinux, Rocky Linux, Fedora), then run sensors. It prints every temperature the kernel can read: the processor package and each core on Intel, Tctl on AMD. This only works on real hardware (a PC, laptop or dedicated server). A VPS has virtual CPUs and no temperature sensors, so there sensors answers No sensors found!.

1. Install lm-sensors and run sensors

  1. Install the package:
    # Ubuntu, Debian, Kali Linux
    sudo apt update
    sudo apt install lm-sensors
    
    # AlmaLinux, Rocky Linux, RHEL, Fedora
    sudo dnf install lm_sensors
  2. Show the temperatures:
    sensors
  3. To keep them on screen, refreshed every 2 seconds (press Ctrl+C to stop):
    watch -n 2 sensors

Useful options (lm-sensors 3.6.0 and 3.6.2):

  • sensors -f: degrees Fahrenheit instead of Celsius.
  • sensors -j: JSON output, for scripts and monitoring tools.
  • sensors -A: hides the "Adapter" line under each chip.

2. Read the output

The labels depend on the CPU driver, according to the Linux kernel documentation:

  • Intel (driver coretemp): Package id 0 is the whole processor, Core 0, Core 1 and so on are single cores. high is the maximum recommended operating temperature and crit is the maximum junction temperature, beyond which the CPU protects itself.
  • AMD (driver k10temp): Tctl is a control value for the cooling system, not a measured temperature. Tccd1, Tccd2 and so on are the measured temperatures of each core die, on CPUs that report them.
  • Other entries belong to the motherboard, drives or fans.

Compare the reading with the high and crit values that sensors prints for your own CPU. A CPU that runs close to high under normal load needs better cooling: clean the fans and heatsink and check the airflow.

3. If sensors finds nothing on a PC or dedicated server

sensors needs a kernel driver for each chip. Load the CPU driver by hand and try again:

sudo modprobe coretemp    # Intel
sudo modprobe k10temp     # AMD
sensors

On a desktop or laptop you can also run sudo sensors-detect, which scans for monitoring chips and suggests drivers (--auto takes the default answer to every question). Its own manual warns that probing can upset some chips and says not to run it on production servers. On a server, load the driver as above or use IPMI (step 6).

4. Read the temperature without installing anything

The kernel exposes the same readings in /sys:

paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp)
cat /sys/class/hwmon/hwmon*/temp*_input

The values are in thousandths of a degree Celsius: 48000 means 48 °C. Thermal zones are common on laptops; the hwmon files are what sensors reads.

5. Why a VPS shows "No sensors found!"

Lab example from our KVM test VPS (Ubuntu and Debian containers on it):

$ sensors
No sensors found!
Make sure you loaded all the kernel drivers you need.
Try sensors-detect to find out which these are.
$ lscpu | grep -E 'Hypervisor vendor|Virtualization type'
Hypervisor vendor:                    KVM
Virtualization type:                  full
$ cat /sys/class/hwmon/hwmon*/temp*_input
cat: '/sys/class/hwmon/hwmon*/temp*_input': No such file or directory

The hypervisor gives a VPS virtual CPUs and passes no temperature sensors through, so there is nothing to read, and installing drivers or running sensors-detect does not change that. The physical host is monitored outside your VPS. Inside a VPS, watch CPU load instead: see How to List Running Processes in Linux (ps, top, htop and pgrep).

6. Dedicated servers: IPMI sensor readings

Server boards with a BMC (IPMI) have their own sensors for the CPUs, board, memory and fans, which the BMC reads independently of the operating system. On the server itself, as root:

sudo apt install ipmitool          # or: sudo dnf install ipmitool
sudo modprobe ipmi_devintf
sudo modprobe ipmi_si
sudo ipmitool sdr type Temperature

From another computer over the network, with the BMC address and user (here 203.0.113.10 and ADMIN as placeholders):

export IPMI_PASSWORD='your-bmc-password'
ipmitool -I lanplus -H 203.0.113.10 -U ADMIN -E sdr type Temperature

-E reads the password from the IPMI_PASSWORD variable, so it is not part of the command. ipmitool sdr type list shows the other sensor types and ipmitool sensor lists all sensors with their thresholds. Without a BMC (a VPS or a container), ipmitool stops with:

Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory

Ucartz unmanaged dedicated servers come with free IPMI KVM access. For the Supermicro BMC console, see How to Install an OS Using Supermicro IPMI: HTML5 iKVM Console and Virtual Media ISO.

7. Disk and GPU temperatures

8. Ubuntu desktop: a temperature graph with Psensor

To check the temperature on an Ubuntu desktop without the terminal, install Psensor once and open it from the applications menu:

sudo apt install psensor

Psensor draws a graph per sensor. It reads the same sensors as the sensors command, and its package also pulls in the S.M.A.R.T. and NVIDIA libraries for drive and GPU temperatures. It is packaged for Ubuntu 24.04 (1.1.5), Ubuntu 26.04 and Debian 13 (1.2.1), but not for AlmaLinux 10 or Fedora 44. On a server, use the commands above.

For other hardware details (board, memory slots, serial numbers), see How to Get Hardware Information with Dmidecode Command on Linux?

Official documentation: coretemp, k10temp, sensors-detect(8), ipmitool(1).

Was this answer helpful?

Still stuck? Open a ticket