diff --git a/bec_lib/bec_lib/bec_service.py b/bec_lib/bec_lib/bec_service.py index 80fb04bf..0b1ee236 100644 --- a/bec_lib/bec_lib/bec_service.py +++ b/bec_lib/bec_lib/bec_service.py @@ -265,13 +265,16 @@ class BECService: def shutdown(self): """shutdown the BECService""" - self.connector.shutdown() - self._service_info_event.set() - if self._service_info_thread: - self._service_info_thread.join() - self._metrics_emitter_event.set() - if self._metrics_emitter_thread: - self._metrics_emitter_thread.join() + try: + self.connector.shutdown() + self._service_info_event.set() + if self._service_info_thread: + self._service_info_thread.join() + self._metrics_emitter_event.set() + if self._metrics_emitter_thread: + self._metrics_emitter_thread.join() + except AttributeError: + print("Failed to shutdown BECService.") @property def service_status(self): diff --git a/bec_lib/bec_lib/client.py b/bec_lib/bec_lib/client.py index 59853190..10085b82 100644 --- a/bec_lib/bec_lib/client.py +++ b/bec_lib/bec_lib/client.py @@ -115,6 +115,7 @@ class BECClient(BECService, UserScriptsMixin): """start the client""" if self.started: return + self.started = True config = self.__init_params["config"] connector_cls = self.__init_params["connector_cls"] wait_for_server = self.__init_params["wait_for_server"] @@ -122,7 +123,6 @@ class BECClient(BECService, UserScriptsMixin): builtins.bec = self._parent self._start_services() logger.info("Starting new client") - self.started = True def _start_services(self): self._configure_logger()