openstack服务启动流程之nova-network
1.服务启动入口时nova工程下bin目录下的nova-network文件:????server = service.Service.create(binary='nova-network')? ? service.serve(server)? ? service.wait()? ? 创建nova-network服务2.service.Service.create方法位于nova目录下的service.py文件,create方法是一个类方法,在该方法中创建server对象:? ??service_obj = cls(host, binary, topic, manager,? ? ? ? ? ? ? ? ? ? ? ? ? report_interval, periodic_interval)? ? 然后执行1中的service.serve(server)方法3.serve是一个全局方法,执行服务的启动:? ??def serve(*servers):? ????? global _launcher? ????? if not _launcher:? ? ? ????? _launcher = Launcher()? ????? for server in servers:? ? ? ? ????_launcher.launch_server(server)?? ? class Launch(Object):????????? ??def launch_server(self, server):? ? ??? ??????????????gt = eventlet.spawn(self.run_server, server)? ? ? ? ????????? ? ??self._services.append(gt)?最后执行start方法。? ? 在start方法中,做一些具体的初始化工作,self.manager.init_host()就是执行创建网桥相关的工作等。