X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/7f850a3c2ea48604f46c0b4f35904c4f2b117de1..75e67012c298ea163108ca79fc9deed1227fa8ff:/pymin/procman.py?ds=sidebyside diff --git a/pymin/procman.py b/pymin/procman.py index b89b7e6..12c269c 100644 --- a/pymin/procman.py +++ b/pymin/procman.py @@ -26,7 +26,6 @@ class ProcessInfo: self.signal = None self.process = None self.error_count = 0 - self.last_return = None self.running = False def start(self): assert self.process is None @@ -46,7 +45,7 @@ class ProcessInfo: self.kill(signal.SIGTERM) def kill(self, signum): assert self.process is not None - os.kill(pi.process.pid, signum) + os.kill(self.process.pid, signum) self.signal = signum def __repr__(self): pid = None @@ -85,7 +84,7 @@ class ProcessManager: def stop(self, name): assert name in self.namemap - self.namemap[name].stop(name) + self.namemap[name].stop() def kill(self, name, signum): assert name in self.namemap @@ -95,12 +94,13 @@ class ProcessManager: try: (pid, status) = os.waitpid(-1, os.WNOHANG) except OSError, e: - if e.errno is e.ECHILD: + if e.errno is errno.ECHILD: return raise while pid: if pid in self.pidmap: p = self.pidmap[pid] + p.process.returncode = status if p.callback is not None: p.callback(self, p) if p.dont_run or not p.persist or p.error_count >= p.max_errors: @@ -131,7 +131,7 @@ class ProcessManager: else: # is a pid if name in self.pidmap: return self.pidmap[name] - return KeyError, name + raise KeyError, name def has(self, name): if isinstance(name, basestring): # is a name