예제 #1
0
파일: daemon.py 프로젝트: creotiv/gflib
 def _monitor(self):
     while not self.stop_signal:
         try:
             proc = os.waitpid(-1, 0)
         except OSError,err:
             if err.errno == 4:
                 continue
         
         if self.stop_signal:
             break
                 
         if os.path.exists(self.pidsdir+'/gfchild_'+str(proc[0])+'.pid'):
             os.remove(self.pidsdir+'/gfchild_'+str(proc[0])+'.pid')
             
         logging.debug("Child # %s died" % proc[0])
         
         index = self.children.index(proc[0])
         forked = gevent.fork()
         
         if forked == 0:
             setupLogging(index,debug=self.debug,directory=self.logs_dir,
                             count=self.logs_count,max_size=self.logs_size)
             self.runChild(index,sockets=self.sockets)
             return
         else:
             file(self.pidsdir+'/gfchild_'+str(forked)+'.pid','w+').write("%s\n" % forked)
             self.children[index] = forked
             logging.debug("Created child # %s" % forked)    
예제 #2
0
파일: daemon.py 프로젝트: creotiv/gflib
 def _run_children(self):
     self.sockets = [(t,create_socket(t.split(':'),self.backlog),self.backlog) for t in self.sockets.split(',')]
     logging.debug("Starting server at %s " %
                 time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()))
     for i in xrange(self.processes):
         forked = os.fork()
         if forked == 0:
             setupLogging(i,debug=self.debug,directory=self.logs_dir,
                             count=self.logs_count,max_size=self.logs_size)
             self.runChild(i,sockets=self.sockets)
             return
         else:
             file(self.pidsdir+'/gfchild_'+str(forked)+'.pid','w+').write("%s\n" % forked)
             self.children.append(forked)         
             logging.debug("Created child # %s" % forked)
예제 #3
0
파일: daemon.py 프로젝트: creotiv/gflib
 def _init_logging(self):
     setupLogging(debug=self.debug,directory=self.logs_dir,count=self.logs_count,
                                                     max_size=self.logs_size)