diff options
Diffstat (limited to 'services/console/interface/memphis/plugin.py')
-rw-r--r-- | services/console/interface/memphis/plugin.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/services/console/interface/memphis/plugin.py b/services/console/interface/memphis/plugin.py new file mode 100644 index 0000000..5ee8eb7 --- /dev/null +++ b/services/console/interface/memphis/plugin.py @@ -0,0 +1,48 @@ +############################################### +# Memphis Plugin Support +############################################### + +import sys, os +from procmem import proc, proc_smaps, analysis + +class Plugin: + + # Plugin list + list = [] + proc = proc.ProcInfo() + + internal_plugin = "memphis_init" + plg_path = os.path.dirname(os.path.abspath(__file__)) + "/plugins" + + # Frequency timer, managed by main program + freq_timer = 0 + + def __init__(self): + + sys.path.insert(0, self.plg_path) + + # Including memphis plugin + self.list.append(__import__(self.internal_plugin)) + + if os.path.isdir(self.plg_path): + # around dir entries + for plg in os.listdir(self.plg_path): + + if plg == self.internal_plugin: + continue + + if os.path.isdir(self.plg_path + "/" + plg): + p = __import__(plg) + self.list.append(__import__(plg)) + + # Parse /proc/PID/smaps information + def proc_get_smaps(self, pid): + return proc_smaps.ProcSmaps(pid) + + # Parse /proc/PID/maps information + def proc_get_maps(self, pid): + return proc_smaps.ProcMaps(pid) + + def proc_analysis(self, pid): + return analysis.Analysis(pid) + |