فهرست منبع

fix graceful exits

Blake Blackshear 4 سال پیش
والد
کامیت
7aecf6c6de
2فایلهای تغییر یافته به همراه10 افزوده شده و 1 حذف شده
  1. 9 0
      frigate/app.py
  2. 1 1
      run.sh

+ 9 - 0
frigate/app.py

@@ -5,6 +5,7 @@ import os
 from logging.handlers import QueueHandler
 from typing import Dict, List
 import sys
+import signal
 
 import yaml
 from playhouse.sqlite_ext import SqliteExtDatabase
@@ -46,6 +47,7 @@ class FrigateApp():
     
     def init_logger(self):
         self.log_process = mp.Process(target=log_process, args=(self.log_queue,), name='log_process')
+        self.log_process.daemon = True
         self.log_process.start()
         root_configurer(self.log_queue)
     
@@ -173,6 +175,13 @@ class FrigateApp():
         self.start_recording_maintainer()
         self.start_watchdog()
         self.zeroconf = broadcast_zeroconf(self.config.mqtt.client_id)
+
+        def receiveSignal(signalNumber, frame):
+            self.stop()
+            sys.exit()
+        
+        signal.signal(signal.SIGTERM, receiveSignal)
+
         self.flask_app.run(host='127.0.0.1', port=5001, debug=False)
         self.stop()
     

+ 1 - 1
run.sh

@@ -1,4 +1,4 @@
 #!/usr/bin/env bash
 
 service nginx start
-python3 -u -m frigate
+exec python3 -u -m frigate