def childmem(self): if self.childpids == None: self.childpids = set() for each in gtop.proclist(): if gtop.proc_uid(each).ppid == self.p: self.childpids.add(each) mem = 0 for each in self.childpids: mem += gtop.proc_mem(each).resident return mem
def run(self): try: remaining = maxtime while remaining > 0: mem = gtop.proc_mem(self.p).resident time.sleep(delay) remaining -= delay # race condition - will child processes have been created yet? self.maxMem = max((mem + self.childmem())/1024, self.maxMem) else: self.timedout = True os.kill(self.p, signal.SIGKILL) except OSError, (e,err): if logger: logger.error('%s %s',e,err)