Added retry handler for watch

This commit is contained in:
Eric Renfro 2024-11-26 15:18:59 -05:00
parent 97895234ff
commit 565337975d
Signed by: psi-jack
SSH key fingerprint: SHA256:1TKB8Z257L8EHK8GWNxKgMhD8a+FAR+f+j3nnlcuNVM

View file

@ -109,26 +109,41 @@ def watch():
] ]
found_interface = False found_interface = False
for interface, path in interfaces_to_monitor: tries = 0
try:
proxy = session_bus.get_object(interface, path)
iface = dbus.Interface(proxy, dbus_interface=interface)
session_bus.add_signal_receiver( while tries < 5 and found_interface == False:
on_signal_received, tries += 1
dbus_interface=interface, logging.info("Initializing D-Bus session interface monitor...")
signal_name="ActiveChanged", for interface, path in interfaces_to_monitor:
) try:
logging.info(f"Subscribed to {interface} at {path}") proxy = session_bus.get_object(interface, path)
found_interface = True iface = dbus.Interface(proxy, dbus_interface=interface)
except dbus.exceptions.DBusException as e:
pass
#logging.warning(f"Could not subscribe to {interface} at {path}: {e}")
if not found_interface: session_bus.add_signal_receiver(
logging.error("No suitable interfaces were found. Exiting...") on_signal_received,
return dbus_interface=interface,
signal_name="ActiveChanged",
)
logging.info(f"Subscribed to {interface} at {path}")
found_interface = True
break
except KeyboardInterrupt:
print("Exiting by user interupt.")
sys.exit(0)
except dbus.exceptions.DBusException as e:
pass
#logging.warning(f"Could not subscribe to {interface} at {path}: {e}")
if not found_interface:
if tries < 5:
try:
time.sleep(5)
except KeyboardInterrupt:
print("Exiting by user interupt.")
sys.exit(0)
else:
logging.error("No suitable interfaces were found. Exiting...")
sys.exit(2)
# Start the process monitoring thread # Start the process monitoring thread
monitor_thread = threading.Thread(target=monitor_process, args=(process_name,)) monitor_thread = threading.Thread(target=monitor_process, args=(process_name,))