From b587e83327bff6795d5b58b2c589694ac43a97eb Mon Sep 17 00:00:00 2001 From: ElMoribond Date: Mon, 12 Jul 2021 14:52:19 +0200 Subject: [PATCH] improved user experience --- frigate/util.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/frigate/util.py b/frigate/util.py index dae3845f2..fcc0a5730 100755 --- a/frigate/util.py +++ b/frigate/util.py @@ -519,8 +519,19 @@ def clipped(obj, frame_shape): return False -def restart_frigate(): - os.kill(os.getpid(), signal.SIGTERM) +def restart_frigate(mqtt_client, topic_prefix, from_ui = 0): + + def on_publish(client,userdata,result): + time.sleep(0.67) + rc, docker = 1, "/usr/local/bin/docker" + if os.access(docker, os.X_OK) and os.path.isfile("/var/run/docker.sock"): + rc = sp.Popen(f"{docker} restart $(hostname)", shell=True).wait() + if rc: + # Sometimes you have to wait a long time like this + os.kill(os.getpid(), signal.SIGTERM) + + mqtt_client.on_publish = on_publish + mqtt_client.publish(f"{topic_prefix}/restarted", int(from_ui)) class EventsPerSecond: