I'm trying to get CPU temperature from the terminal using sysctl.


sysctl machdep.xcpm.cpu_thermal_level


machdep.xcpm.cpu_thermal_level: 0

But the given temperature is not correct(Original temperature is: 51c).

How does the temperature is calculated by sysctl? Sometimes the temperature is 0.

Why the temperature is wrong?

Thank you.


I think that's the CPU throttling, not temp - see here: -

What does machdep.xcpm.cpu_thermal_level mean?

This shows your temps:-

sudo powermetrics --samplers smc
  • Finally, after 4 years a new user answered this question. Nov 9 '20 at 16:47
  • the answer works. The idea that it's CPU throttling is looking less and less likely, so we (and everyone else on the web that I've found so far) still don't know what that number really means. It does seem to go up as you wake your machine from sleep I've noticed...
    – cnd
    Nov 10 '20 at 20:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .