diff --git a/glances/processes.py b/glances/processes.py index a01cd9299..9487b9efc 100644 --- a/glances/processes.py +++ b/glances/processes.py @@ -123,7 +123,9 @@ def reset_internal_cache(self): """Reset the internal cache.""" self.cache_timer = Timer(0) self.processlist_cache = {} - psutil.process_iter.cache_clear() + if hasattr(psutil.process_iter, 'cache_clear'): + # Cache clear only available in PsUtil 6 or higher + psutil.process_iter.cache_clear() def reset_processcount(self): """Reset the global process count""" @@ -451,7 +453,9 @@ def update(self): ) ) # Only get the info key - processlist = [p.info for p in processlist] + # PsUtil 6+ no longer check PID reused #2755 so use is_running in the loop + # Note: not sure it is realy needed but CPU consumption look teh same with or without it + processlist = [p.info for p in processlist if p.is_running()] # Sort the processes list by the current sort_key processlist = sort_stats(processlist, sorted_by=self.sort_key, reverse=True)