Пример #1
0
 def run(self):
     self.process_groups = {}  # clear
     self.stop_groups = None  # clear
     events.clear()
     self.make_job_handler()  # container
     try:
         for config in self.options.process_group_configs:
             self.add_process_group(config)
         self.options.process_environment()
         self.options.openhttpservers(self)
         self.options.setsignals()
         if not self.options.nodaemon and self.options.first:
             try:
                 self.options.daemonize()
             except NotImplementedError:
                 pass
         # writing pid file needs to come *after* daemonizing or pid
         # will be wrong
         self.options.write_pidfile()
         self.runforever()
     except:
         raise
     finally:
         self.options.cleanup()
         if self.options.job_handler:
             self.options.job_handler.terminate()
Пример #2
0
 def run(self):
     self.process_groups = {}  # clear
     self.stop_groups = None  # clear
     events.clear()
     self.make_job_handler()  # container
     try:
         for config in self.options.process_group_configs:
             self.add_process_group(config)
         self.options.process_environment()
         self.options.openhttpservers(self)
         self.options.setsignals()
         if not self.options.nodaemon and self.options.first:
             try:
                 self.options.daemonize()
             except NotImplementedError:
                 pass
         # writing pid file needs to come *after* daemonizing or pid
         # will be wrong
         self.options.write_pidfile()
         self.runforever()
     except:
         raise
     finally:
         self.options.cleanup()
         if self.options.job_handler:
             self.options.job_handler.terminate()
Пример #3
0
 def run(self):
     self.process_groups = {}  # clear
     self.stop_groups = None  # clear
     # 清除全局变量callbacks
     events.clear()
     try:
         # class ProcessConfig(Config)    ProcessGroupConfig
         for config in self.options.process_group_configs:
             # 将process实例添加到自己的进程组中,这一步老复杂了
             self.add_process_group(config)
         # {'st': <<class 'supervisor.process.ProcessGroup'> instance at 140080285716112 named st >}
         print(self.process_groups)
         self.options.process_environment()  # 更新环境变量
         self.options.openhttpservers(self)
         # self.options.httpservers
         # [({'username': None, 'name': None, 'family': 1, 'section': 'unix_http_server', 'chmod': 448, 'chown': (-1, -1),
         #    'file': '/tmp/supervisor.sock', 'password': None},
         #   < supervisor.http.supervisor_af_unix_http_server at 0x7fb0684bffc8 >)]
         # openhttpservers 设置了socket_map
         # 设置信号处理函数
         # def receive(self, sig, frame):
         #         # 信号量不能重复?
         #         if sig not in self._signals_recvd:
         #             self._signals_recvd.append(sig)
         self.options.setsignals()
         # 如果是true,supervisord进程将在前台运行
         # 我先把它给关掉,因为不运行在桌面无法进行调试
         # if (not self.options.nodaemon) and self.options.first:
         #     self.options.daemonize()
         # writing pid file needs to come *after* daemonizing or pid
         # will be wrong   将进程号写进进程文件
         self.options.write_pidfile()
         self.runforever()
     finally:
         self.options.cleanup()
Пример #4
0
 def on_stopping(self, event):
     """ Called when Supervisor is STOPPING.
     This method stops the Supvisors main loop. """
     self.logger.warn('local supervisord is STOPPING')
     # unsubscribe from events
     events.clear()
     # force Supervisor to close HTTP servers
     self.info_source.close_httpservers()
     # stop and join the main loop
     self.main_loop.stop()
     # close zmq sockets
     self.supvisors.zmq.close()
     # finally, close logger
     self.logger.close()
Пример #5
0
 def on_stopping(self, event):
     """ Called when Supervisor is STOPPING.
     This method stops the Supvisors main loop. """
     self.logger.warn('local supervisord is STOPPING')
     # force Supervisor to close HTTP servers
     # this will prevent any pending XML-RPC request to block the main loop
     self.info_source.close_httpservers()
     # stop the main loop
     self.logger.info('request to stop main loop')
     self.main_loop.stop()
     self.logger.info('end of main loop')
     # close zmq sockets
     self.supvisors.zmq.close()
     # unsubscribe from events
     events.clear()
     # finally, close logger
     self.logger.close()
Пример #6
0
 def run(self):
     self.process_groups = {} # clear
     self.stop_groups = None # clear
     events.clear()
     try:
         for config in self.options.process_group_configs:
             self.add_process_group(config)
         self.options.openhttpservers(self)
         self.options.setsignals()
         if (not self.options.nodaemon) and self.options.first:
             self.options.daemonize()
         # writing pid file needs to come *after* daemonizing or pid
         # will be wrong
         self.options.write_pidfile()
         self.runforever()
     finally:
         self.options.cleanup()
Пример #7
0
 def on_stopping(self, event):
     """ Called when Supervisor is STOPPING.
     This method stops the Supvisors main loop. """
     self.logger.warn('local supervisord is STOPPING')
     # force Supervisor to close HTTP servers
     # this will prevent any pending XML-RPC request to block the main loop
     self.info_source.close_httpservers()
     # stop the main loop
     self.logger.info('request to stop main loop')
     self.main_loop.stop()
     self.logger.info('end of main loop')
     # close zmq sockets
     self.supvisors.zmq.close()
     # unsubscribe from events
     events.clear()
     # finally, close logger
     self.logger.close()
Пример #8
0
 def run(self):
     self.process_groups = {} # clear
     self.stop_groups = None # clear
     events.clear()
     try:
         for config in self.options.process_group_configs:
             self.add_process_group(config)
         self.options.process_environment()
         self.options.openhttpservers(self)
         self.options.setsignals()
         if (not self.options.nodaemon) and self.options.first:
             self.options.daemonize()
         # writing pid file needs to come *after* daemonizing or pid
         # will be wrong
         self.options.write_pidfile()
         self.runforever()
     finally:
         self.options.cleanup()
Пример #9
0
 def tearDown(self):
     from supervisor.events import clear
     clear()
Пример #10
0
 def test_clear(self):
     from supervisor import events
     events.callbacks[:] = [(None, None)]
     events.clear()
     self.assertEqual(events.callbacks, [])
Пример #11
0
 def tearDown(self):
     from supervisor.events import clear
     clear()
Пример #12
0
 def setUp(self):
     from supervisor.events import clear
     clear()
Пример #13
0
 def setUp(self):
     from supervisor.events import clear
     clear()