mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-03-04 07:43:46 +08:00
fix: wrap old handler
This commit is contained in:
14
app.py
14
app.py
@@ -8,18 +8,22 @@ from plugins import *
|
||||
import signal
|
||||
import sys
|
||||
|
||||
def sigterm_handler(_signo, _stack_frame):
|
||||
conf().save_user_datas()
|
||||
sys.exit(0)
|
||||
def sigterm_handler_wrap(_signo):
|
||||
old_handler = signal.getsignal(_signo)
|
||||
def func(_signo, _stack_frame):
|
||||
logger.info("signal {} received, exiting...".format(_signo))
|
||||
conf().save_user_datas()
|
||||
return old_handler(_signo, _stack_frame)
|
||||
signal.signal(_signo, func)
|
||||
|
||||
def run():
|
||||
try:
|
||||
# load config
|
||||
load_config()
|
||||
# ctrl + c
|
||||
signal.signal(signal.SIGINT, sigterm_handler)
|
||||
sigterm_handler_wrap(signal.SIGINT)
|
||||
# kill signal
|
||||
signal.signal(signal.SIGTERM, sigterm_handler)
|
||||
sigterm_handler_wrap(signal.SIGTERM)
|
||||
|
||||
# create channel
|
||||
channel_name=conf().get('channel_type', 'wx')
|
||||
|
||||
Reference in New Issue
Block a user