def main(self): if self.nested_command is None: self.help() return 1 log.init(verbose=self.debug, name='gofed-client') conf = ConfigParser() conf.read(self.config_path) self.config = config2dict(conf)
def main(self): try: self.conf except Exception: log.error("config option is mandatory, see '--help'") sys.exit(1) self.conf = config2dict(self.conf) cls = ServiceEnvelope.SERVICE_CLASS logfile = self.logfile if self.logfile != '-' else None verbose = not self.quiet name = cls.get_service_name() version = cls.get_service_version() log.init(logfile, verbose, name) log.critical("Service starting at %s, version is %s" % (get_time_str(), version)) service_cls = ServiceEnvelope.SERVICE_CLASS service_cls.on_startup(self.conf, self.system_json) ServiceEnvelope.worker_pid = os.fork() if ServiceEnvelope.worker_pid == 0: self.run_worker_process() else: signal.signal(signal.SIGINT, ServiceEnvelope.signal_handler) signal.signal(signal.SIGTERM, ServiceEnvelope.signal_handler) try: while os.waitpid(ServiceEnvelope.worker_pid, 0): pass except Exception: pass # finish logging and ensure that all messages are flushed log.critical("Service terminated at %s" % get_time_str()) log.close()