Esempio n. 1
0
File: testbed.py Progetto: qyb/sohu
 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
Esempio n. 2
0
File: testbed.py Progetto: qyb/sohu
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)