mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-04 18:25:22 +03:00
Disable detect in config before restart
This commit is contained in:
parent
ea8ec23cbe
commit
09c39f8040
@ -65,7 +65,7 @@ class Dispatcher:
|
||||
logger.error(f"Received invalid set command: {topic}")
|
||||
return
|
||||
elif topic == "restart":
|
||||
restart_frigate()
|
||||
restart_frigate(self.config)
|
||||
|
||||
def publish(self, topic: str, payload: Any, retain: bool = False) -> None:
|
||||
"""Handle publishing to communicators."""
|
||||
|
||||
@ -764,7 +764,7 @@ def config_save():
|
||||
|
||||
if save_option == "restart":
|
||||
try:
|
||||
restart_frigate()
|
||||
restart_frigate(current_app.frigate_config)
|
||||
except Exception as e:
|
||||
logging.error(f"Error restarting Frigate: {e}")
|
||||
return "Config successfully saved, unable to restart Frigate", 200
|
||||
|
||||
@ -22,6 +22,7 @@ import os
|
||||
import psutil
|
||||
import pytz
|
||||
|
||||
from frigate.config import FrigateConfig
|
||||
from frigate.const import REGEX_HTTP_CAMERA_USER_PASS, REGEX_RTSP_CAMERA_USER_PASS
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -627,7 +628,11 @@ def clipped(obj, frame_shape):
|
||||
return False
|
||||
|
||||
|
||||
def restart_frigate():
|
||||
def restart_frigate(config: FrigateConfig):
|
||||
# disable detect for cameras to speed up restart
|
||||
for _, camera in config.cameras.items():
|
||||
camera.detect.enabled = False
|
||||
|
||||
proc = psutil.Process(1)
|
||||
# if this is running via s6, sigterm pid 1
|
||||
if proc.name() == "s6-svscan":
|
||||
|
||||
@ -2,20 +2,21 @@ import datetime
|
||||
import logging
|
||||
import threading
|
||||
import time
|
||||
import os
|
||||
import signal
|
||||
|
||||
from multiprocessing.synchronize import Event as MpEvent
|
||||
|
||||
from frigate.config import FrigateConfig
|
||||
from frigate.object_detection import ObjectDetectProcess
|
||||
from frigate.util import restart_frigate
|
||||
from multiprocessing.synchronize import Event as MpEvent
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FrigateWatchdog(threading.Thread):
|
||||
def __init__(self, detectors: dict[str, ObjectDetectProcess], stop_event: MpEvent):
|
||||
def __init__(self, config: FrigateConfig, detectors: dict[str, ObjectDetectProcess], stop_event: MpEvent):
|
||||
threading.Thread.__init__(self)
|
||||
self.name = "frigate_watchdog"
|
||||
self.config = config
|
||||
self.detectors = detectors
|
||||
self.stop_event = stop_event
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user