|Index|Check and Monitor CPU Temperature
SUSE Linux Enterprise Server 16.1

Check and Monitor CPU Temperature

Publication Date: 05 Nov 2026

SUSE Linux Enterprise Server reports CPU and other component temperatures through Advanced Configuration and Power Interface (ACPI) thermal zones and hardware monitoring devices. Read the CPU temperature from the ACPI thermal zones without installing any software, or list all sensors with the sensors command. Monitoring the temperature helps you reduce energy costs and detect cooling problems early.

Prerequisites

  • sudo privileges to install the sensors package and to run sensors-detect (reading the temperature requires no special privileges)

1 Why monitor CPU temperature?

Checking and monitoring CPU temperature has several benefits.

  • Energy savings and cost reduction. When a CPU runs at full speed, it consumes more energy than when it is idling. Keeping CPUs cool is also a major cost factor, especially in data centers.

  • Identifying and monitoring processes that consume too much CPU power. Doing that can help free CPU resources and increase responsiveness.

  • Easier detection of cooling issues. If the CPU temperature approaches or exceeds the high or critical limits that your hardware reports, it indicates that there is a problem with the cooling system or the fan, or that the thermal paste was not applied correctly.

  • A long-term reduction of the carbon footprint can be achieved by adjusting the cooling parameters.

You can read the temperature in two ways: from the ACPI thermal zones that the kernel exposes, which needs no additional software, or with the sensors command, which lists all sensors that the kernel provides. For details, see Section 3, “Reading the CPU temperature”.

2 Installing and configuring hardware sensors

The sensors command is part of the sensors package. To read the temperature from the ACPI thermal zones, you do not need the package. For details, see Section 3.1, “Reading the ACPI thermal zones”.

  1. Install the required package.

    • On the mutable system:

      > sudo zypper install sensors
    • On the immutable system:

      > sudo transactional-update pkg install sensors

      Reboot the system to activate the change.

  2. Check which sensors the kernel already provides:

    > sensors

    The output lists the sensors that the kernel has registered, for example, ACPI thermal zones and NVMe drives. For a sample and an explanation, see Section 3.3, “Reading all sensors with the sensors command”. If the kernel has registered no sensor, the command reports No sensors found!

  3. Optionally, search for additional hardware monitoring chips that the kernel does not register on its own, for example, on an I2C or SMBus adapter. Do this only if a sensor that you need is missing from the output of sensors.

    Warning
    Warning: Hardware probing can hang or damage a system

    The sensors-detect command accesses hardware to identify chips. According to its man page, this can lock up the SMBus and, in rare cases, damage hardware. The man page advises against running the command on production servers.

    If you accept this risk, run the following command:

    > sudo sensors-detect --auto

    The --auto option runs the command without interaction and assumes the default answer to every question. Without it, the command asks each question and waits for your answer.

    If the command finds a chip, it prints a summary of the chips that it found. Because of the --auto option, it accepts the default answer to the last question:

    Now follows a summary of the probes I have just done.
    
    Driver `coretemp':
      * Chip `Intel digital thermal sensor' (confidence: 9)
    
    Driver `to-be-written':
      * ISA bus, address 0xa40
        Chip `ITE IT8686E Super IO Sensors' (confidence: 9)
    
    Do you want to generate /etc/sysconfig/lm_sensors? (YES/no):
    Created symlink '/etc/systemd/system/multi-user.target.wants/lm_sensors.service' → '/usr/lib/systemd/system/lm_sensors.service'.

    The command generates the file /etc/sysconfig/lm_sensors and enables and starts the lm_sensors service. The unit file of the service is part of the sensors package. To check the status of the service, run:

    > systemctl status lm_sensors

    Sample output:

    ● lm_sensors.service - Initialize hardware monitoring sensors
         Loaded: loaded (/usr/lib/systemd/system/lm_sensors.service; enabled; preset: disabled)
         Active: active (exited) since Mon 2026-09-21 07:40:32 CEST; 16ms ago
     Invocation: e3f984a1d2cf43528b9b753f1d698a65
        Process: 1433 ExecStart=/sbin/modprobe -qab $BUS_MODULES $HWMON_MODULES (code=exited, status=0/SUCCESS)
        Process: 1436 ExecStart=/usr/bin/sensors -s (code=exited, status=0/SUCCESS)
       Main PID: 1436 (code=exited, status=0/SUCCESS)
            CPU: 34ms

    If the command finds no chip, it reports Sorry, no sensors were detected. It generates no configuration file, and the service stays disabled. The sensors that the sensors command already lists are not affected.

To read the temperature, continue with Section 3, “Reading the CPU temperature”.

3 Reading the CPU temperature

This section describes two ways to read the temperature. If neither shows a temperature, the operating system has no access to a temperature sensor, as is the case in a virtual machine that does not emulate one.

3.1 Reading the ACPI thermal zones

The kernel exposes each ACPI thermal zone as a directory named /sys/class/thermal/thermal_zoneN. Reading these files requires neither the sensors package nor special privileges.

Example 1: Listing the type and temperature of all ACPI thermal zones
> grep . /sys/class/thermal/thermal_zone*/{type,temp}

Sample output:

/sys/class/thermal/thermal_zone0/type:acpitz
/sys/class/thermal/thermal_zone1/type:acpitz
/sys/class/thermal/thermal_zone0/temp:40900
/sys/class/thermal/thermal_zone1/temp:52900

The grep . command prints the name of each file in front of its content, so that every value stays assigned to its zone. The temperature is given in millidegrees Celsius: 40900 means 40.9°C. The type acpitz identifies an ACPI thermal zone.

If /sys/class/thermal contains no thermal_zoneN directory, the system has no ACPI thermal zone. Use the sensors command instead.

Each zone can define trip points. To list the first trip point of the first zone, run:

Example 2: Listing the first trip point of an ACPI thermal zone
> grep . /sys/class/thermal/thermal_zone0/trip_point_0_{type,temp}

Sample output:

/sys/class/thermal/thermal_zone0/trip_point_0_type:critical
/sys/class/thermal/thermal_zone0/trip_point_0_temp:100000

A trip point of type critical gives the temperature at which the kernel shuts down the system to protect the hardware. Its value is also in millidegrees Celsius: 100000 means 100°C. When a zone reaches this temperature, the kernel logs the messages critical temperature reached and HARDWARE PROTECTION shutdown (Temperature too high).

3.2 Identifying readings that come through ACPI

You can recognize a reading that comes through ACPI in two ways:

  • Its zone in /sys/class/thermal has the type acpitz.

  • In the output of the sensors command, its chip name is acpitz-acpi-0 and its adapter is ACPI interface.

To see the name that the system firmware gave to each zone, read the path file of the zone:

Example 3: Listing the firmware names of all ACPI thermal zones
> grep . /sys/class/thermal/thermal_zone*/device/path

Sample output:

/sys/class/thermal/thermal_zone0/device/path:\_TZ_.TZ00
/sys/class/thermal/thermal_zone1/device/path:\_TZ_.TZ01

The kernel reports that a reading comes through ACPI, but not which component the zone measures. The firmware chooses the names.

Sensors that the sensors command lists under another chip name, such as the NVMe drive nvme-pci-0090 in the following section, are provided by their own kernel drivers and do not come through ACPI.

3.3 Reading all sensors with the sensors command

The sensors command lists every temperature sensor that the kernel has registered, not only the ACPI thermal zones. It needs the sensors package, as described in Section 2, “Installing and configuring hardware sensors”, but no special privileges. To obtain a snapshot of the current temperatures, run:

> sensors

Sample output:

nvme-pci-0090 1
Adapter: PCI adapter 2
Composite:    +49.9°C  (low  = -273.1°C, high = +69.8°C)3
                       (crit = +99.8°C)

acpitz-acpi-0 4
Adapter: ACPI interface
temp1:        +40.9°C
temp2:        +52.9°C

1

The device that reports the values. The name consists of the driver (nvme), the bus (pci) and the address of the device on that bus.

2

The interface through which the device is accessed, for example, PCI adapter or ACPI interface.

3

The temperature of the device, followed by the low, high and critical limits that the device reports.

4

The ACPI thermal zones. Each zone is one temperature. In this example, temp1 is thermal_zone0 (40.9°C) and temp2 is thermal_zone1 (52.9°C).

The sensors command lists the sensors that the kernel has already registered. It does not depend on sensors-detect, which only searches for additional chips (see Section 2, “Installing and configuring hardware sensors”). The kernel drivers coretemp for Intel processors and k10temp for AMD processors provide the CPU temperature.

Note
Note: Output depends on the type of hardware

The output of the sensors command depends on the type of hardware installed on your machine, as different hardware components have different sensors.

4 Monitoring CPU temperature in real time

To monitor the temperature in real time, run the sensors command with the watch command:

> watch sensors

The watch command is part of the procps package. It runs a command at regular intervals and shows its output in the terminal. Sample output:

Every 2.0s: sensors                                          sles16: 07:23:01 AM
                                                                   in 0.007s (0)
nvme-pci-0090
Adapter: PCI adapter
Composite:    +49.9°C  (low  = -273.1°C, high = +69.8°C)
                       (crit = +99.8°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +40.9°C
temp2:        +52.9°C

By default, the watch command updates the output every two seconds. You can change this interval with the -n option followed by the number of seconds. For example, to change the interval to 5 seconds, run:

> watch -n 5 sensors

Press Ctrl–C to stop the watch command.

5 Troubleshooting

This part describes potential problems when monitoring CPU temperatures and their solutions.

5.1 Why are the displayed temperatures unrealistic?

If you suspect that the displayed temperature is too low or too high, you can try the following:

  • Compare the temperatures of the ACPI thermal zones with the acpitz entries in the output of the sensors command. Both show the same zones, so the values should agree. For the commands, see Section 3, “Reading the CPU temperature”.

  • Use a different tool that reads the same kernel sensors, for example, s-tui, a terminal utility that shows the temperatures that the system reports together with the CPU frequency and utilization. It is provided by SUSE Package Hub, whose packages are community-maintained and delivered without L3 support. If Package Hub is not enabled, run SUSEConnect --list-extensions, which prints the command to enable it.

    Install the s-tui package:

    • On the mutable system:

      > sudo zypper install s-tui
    • On the immutable system:

      > sudo transactional-update pkg install s-tui

      Reboot the system to activate the change.

    Then run s-tui from the terminal.

If none of these recommendations solve the issue, the problem might be due to unsupported or faulty hardware. In this case, you need to seek help from your hardware manufacturer.

5.2 Why is the displayed temperature too high?

If the CPU temperature is too high, here are actions you can take:

  • Verify that the CPU cooling system, such as the fan or heat sink, works correctly. Ensure that the fan is spinning properly and that the heat sink is making proper contact with the CPU. If necessary, you may need to replace the thermal paste between the CPU and the heat sink to improve heat transfer.

  • Adjust the power settings on your system to reduce heat generation. Lowering the CPU frequency or enabling power-saving features can help keep the temperature in check.

  • Monitor the system load and CPU usage. High CPU usage for extended periods can lead to increased temperatures. Identify resource-intensive processes with tools such as top or ps, then consider optimizing or limiting their usage. For more information, see https://www.suse.com/support/kb/doc/?id=000016916.

6 For more information