瀏覽代碼

handle exit signals

Blake Blackshear 3 年之前
父節點
當前提交
5afda72b84
共有 2 個文件被更改,包括 12 次插入3 次删除
  1. 0 1
      frigate/app.py
  2. 12 2
      frigate/output.py

+ 0 - 1
frigate/app.py

@@ -228,7 +228,6 @@ class FrigateApp:
             args=(
                 self.config,
                 self.video_output_queue,
-                self.stop_event,
             ),
         )
         output_processor.daemon = True

+ 12 - 2
frigate/output.py

@@ -1,13 +1,23 @@
 import queue
+import signal
+import multiprocessing as mp
 from multiprocessing import shared_memory
 from frigate.util import SharedMemoryFrameManager
 
 
-def output_frames(config, video_output_queue, stop_event):
+def output_frames(config, video_output_queue):
+    stop_event = mp.Event()
+
+    def receiveSignal(signalNumber, frame):
+        stop_event.set()
+
+    signal.signal(signal.SIGTERM, receiveSignal)
+    signal.signal(signal.SIGINT, receiveSignal)
+
     frame_manager = SharedMemoryFrameManager()
     previous_frames = {}
 
-    while True:
+    while not stop_event.is_set():
         try:
             (
                 camera,