Summary
lhm-temp.exe spawns a new process for each hardware monitoring call but the child processes never terminate, accumulating as zombies. On my system this reached 646 concurrent lhm-temp.exe processes consuming 11 GB of RAM and causing system-wide freezes (seconds to minutes).
Environment
- OS: Windows 11 Pro (Build 26200)
- CPU: AMD Ryzen 7 9800X3D
- RAM: 64 GB
- Conky build: commit
011be497 (latest)
- LHM path:
C:\Program Files\Conky\LibreHardwareMonitor\lhm-temp.exe
- LHM version: LibreHardwareMonitorLib.dll dated Feb 14, 2026
Steps to Reproduce
- Install conky-windows with LibreHardwareMonitor integration
- Run conky with hardware monitoring enabled (temperature/sensor widgets)
- Leave running for several hours
- Check Task Manager or run:
tasklist /FI "IMAGENAME eq lhm-temp.exe" | find /c "lhm-temp.exe"
Observed Behavior
- Each sensor read spawns a new
lhm-temp.exe process
- Processes crash with
.NET clr.dll internal error (Event ID 1023 in Application log) but never exit
- After ~2.5 hours: 646 zombie processes, 11 GB total RAM, 36.7 minutes total CPU time
- Event log shows repeated:
Application: lhm-temp.exe, Framework Version: v4.0.30319, The process was terminated due to an internal error
- The zombie accumulation causes severe system freezes due to memory pressure and paging
Event Log Evidence
Error 1023 (.NET Runtime): Application: lhm-temp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error
This error repeats hundreds of times — one per leaked process.
Expected Behavior
lhm-temp.exe should either:
- Be a single long-running process that conky communicates with (not spawned per-query), or
- Properly terminate after each use, or
- Conky should detect the stale/zombie processes and clean them up
Suggested Fix
The most likely issue is in how conky launches lhm-temp.exe. Options:
- Use a persistent helper process instead of spawning a new one per sensor read
- Add timeout/kill logic: if a previous
lhm-temp.exe is still running when a new one is needed, kill the old one first
- Use named pipes or a local socket for IPC instead of repeated process spawning
- Cap concurrent instances: allow at most 1-2
lhm-temp.exe at any time
Impact
This is a critical issue — it turns a system monitor into a system destroyer. 646 zombie processes and 11 GB leaked RAM caused cascading freezes across the entire system, including unrelated applications.
Workaround
Periodically run:
taskkill /F /IM lhm-temp.exe
Or disable LHM hardware monitoring widgets in the conky config.
Summary
lhm-temp.exespawns a new process for each hardware monitoring call but the child processes never terminate, accumulating as zombies. On my system this reached 646 concurrentlhm-temp.exeprocesses consuming 11 GB of RAM and causing system-wide freezes (seconds to minutes).Environment
011be497(latest)C:\Program Files\Conky\LibreHardwareMonitor\lhm-temp.exeSteps to Reproduce
tasklist /FI "IMAGENAME eq lhm-temp.exe" | find /c "lhm-temp.exe"Observed Behavior
lhm-temp.exeprocess.NET clr.dllinternal error (Event ID 1023 in Application log) but never exitApplication: lhm-temp.exe, Framework Version: v4.0.30319, The process was terminated due to an internal errorEvent Log Evidence
This error repeats hundreds of times — one per leaked process.
Expected Behavior
lhm-temp.exeshould either:Suggested Fix
The most likely issue is in how conky launches
lhm-temp.exe. Options:lhm-temp.exeis still running when a new one is needed, kill the old one firstlhm-temp.exeat any timeImpact
This is a critical issue — it turns a system monitor into a system destroyer. 646 zombie processes and 11 GB leaked RAM caused cascading freezes across the entire system, including unrelated applications.
Workaround
Periodically run:
taskkill /F /IM lhm-temp.exeOr disable LHM hardware monitoring widgets in the conky config.