From abb28b0bd409ea9d02171e04a41a164c4dcf277e Mon Sep 17 00:00:00 2001 From: Don Neill Date: Thu, 24 Sep 2026 15:14:35 -0700 Subject: [PATCH] Add shutdown keyword to pdu daemon --- daemons/generic/pdu | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/daemons/generic/pdu b/daemons/generic/pdu index fae5dcc..31c5c17 100644 --- a/daemons/generic/pdu +++ b/daemons/generic/pdu @@ -277,6 +277,9 @@ class Pdu(HispecDaemon): #pylint: disable = W0223 self.keyword_registry.string("status", getter=self.keyword_wrapper(self.status, key="status"), description="JSON status summary of the PDU and all outlets.") + self.keyword_registry.trigger("shutdown", + action=self._shutdown, + description="Shutdown the daemon now.") for outlet in self.outlets: outlet.register_keywords(self.keyword_registry) @@ -349,6 +352,13 @@ class Pdu(HispecDaemon): #pylint: disable = W0223 return self._fail(str(e)) return {"ok": True, "status": json.dumps(status)} + def _shutdown(self): + """Shutdown the daemon""" + self.logger.info("Shutting down") + if self.dev is not None: + self.dev.disconnect() + self.request_stop() + def _get_device_str(self, item: str) -> str: """Read a device-level (no outlet number) string item from the driver.""" if not self.is_connected():