Source code for plaso.engine.process_info

# -*- coding: utf-8 -*-
"""Information about running process."""

import psutil


[docs] class ProcessInfo(object): """Provides information about a running process."""
[docs] def __init__(self, pid): """Initializes process information. Args: pid (int): process identifier (PID). Raises: IOError: If the process identified by the PID does not exist. OSError: If the process identified by the PID does not exist. """ if not psutil.pid_exists(pid): raise IOError(f'Process with PID: {pid:d} does not exist') self._process = psutil.Process(pid)
[docs] def GetUsedMemory(self): """Retrieves the amount of memory used by the process. Returns: int: amount of memory in bytes used by the process or None if not available. """ try: memory_info = self._process.memory_info() except psutil.NoSuchProcess: return None # Psutil will return different memory information depending on what is # available in that platform. memory_data = getattr(memory_info, 'data', 0) memory_shared = getattr(memory_info, 'shared', 0) return memory_data + memory_shared