def init_protocol(self): self.ipc = IPC(('localhost', 6000)) if not self.ipc: self.logger.error("IPC protocol module load failed.") return False if not self.ipc.loop(): self.logger.error("IPC protocol module running exceptionally.") return False return True
class PS: def __init__(self, options): self.logfile = options.logfile self.daemon = options.daemon def init_logger(self, key = 'purify'): ''' initialize logger when parent process started. ''' logging.config.fileConfig(self.logfile) self.logger = logging.getLogger(key) if not self.logger: print "Fatal: initiate logger system failed!" return False self.logger.debug("\033[31mLogger system start successfully!\033[0m") return True def init_protocol(self): self.ipc = IPC(('localhost', 6000)) if not self.ipc: self.logger.error("IPC protocol module load failed.") return False if not self.ipc.loop(): self.logger.error("IPC protocol module running exceptionally.") return False return True def start_server(self): if self.daemon and platform.system() == "Linux": try: # first fork child process, then kill parent pid = os.fork() if pid > 0: sys.exit(0) except OSError, e: print >> sys.stderr, "fork #1 failed: %d (%s)" % (e.errno, e.strerror) sys.exit(1) os.chdir('/') os.setsid() os.umask(0) try: # second fork to avoid some OS bug. pid = os.fork() if pid > 0: open('/var/run/purifier.pid', 'w').write("%d" % pid).close() sys.exit(0) except OSError, e: print >> sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror) sys.exit(1)