From 82299a3799a13e9818b67702be28daedad60a558 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 4 Mar 2020 18:55:07 +0100 Subject: [PATCH] Fix udev error without privileged (#1566) * Fix udev error without privileged * Fix udev * Remove context * Update supervisor/hwmon.py Co-Authored-By: Paulus Schoutsen * Update supervisor/hwmon.py Co-Authored-By: Paulus Schoutsen Co-authored-by: Paulus Schoutsen --- supervisor/hwmon.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/supervisor/hwmon.py b/supervisor/hwmon.py index 8e911cff5..6ce1d90bb 100644 --- a/supervisor/hwmon.py +++ b/supervisor/hwmon.py @@ -19,20 +19,25 @@ class HwMonitor(CoreSysAttributes): """Initialize Hardware Monitor object.""" self.coresys: CoreSys = coresys self.context = pyudev.Context() - self.monitor = pyudev.Monitor.from_netlink(self.context) + self.monitor: Optional[pyudev.Monitor] = None self.observer: Optional[pyudev.MonitorObserver] = None async def load(self) -> None: """Start hardware monitor.""" - self.observer = pyudev.MonitorObserver(self.monitor, self._udev_events) - self.observer.start() - - _LOGGER.info("Start Supervisor hardware monitor") + try: + self.monitor = pyudev.Monitor.from_netlink(self.context) + self.observer = pyudev.MonitorObserver(self.monitor, self._udev_events) + except OSError: + _LOGGER.fatal("Not privileged to run udev. Update your installation!") + else: + self.observer.start() + _LOGGER.info("Started Supervisor hardware monitor") async def unload(self) -> None: """Shutdown sessions.""" if self.observer is None: return + self.observer.stop() _LOGGER.info("Stop Supervisor hardware monitor")