You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.3 KiB
Python

###############################################
# 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)