From 0de6478660dde741ce5ffe9411a26384229e6889 Mon Sep 17 00:00:00 2001 From: Stephen Ramsey Date: Thu, 30 Nov 2023 09:03:40 -0800 Subject: [PATCH] #2217 --- .../KG2/openapi_server/__main__.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py b/code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py index a020b7be3..362696622 100644 --- a/code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py +++ b/code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py @@ -19,9 +19,13 @@ def eprint(*args, **kwargs): print(*args, file=sys.stderr, **kwargs) FLASK_DEFAULT_TCP_PORT = 5008 +global child_pid child_pid = None +global parent_pid parent_pid = None +CONFIG_FILE = 'openapi_server/flask_config.json' + def main(): @@ -42,13 +46,15 @@ def main(): # Read any load configuration details for this instance try: - with open('openapi_server/flask_config.json') as infile: + with open(CONFIG_FILE, 'r') as infile: local_config = json.load(infile) except Exception: - eprint(f"Error loading config file: {infile}") + eprint(f"Error loading config file: {CONFIG_FILE}") local_config = {"port": FLASK_DEFAULT_TCP_PORT} tcp_port = local_config['port'] + parent_pid = os.getpid() + pid = os.fork() if pid == 0: # I am the child process from ARAX_background_tasker import ARAXBackgroundTasker @@ -58,7 +64,8 @@ def main(): f"::run_tasks [port={tcp_port}]") eprint("Starting background tasker in a child process") try: - ARAXBackgroundTasker(run_kp_info_cacher=False).run_tasks() + ARAXBackgroundTasker(parent_pid, + run_kp_info_cacher=False).run_tasks() except Exception as e: eprint("Error in ARAXBackgroundTasker.run_tasks()") eprint(traceback.format_exc()) @@ -113,10 +120,7 @@ def receive_sigpipe(signal_number, frame): # Start the service eprint(f"Background tasker is running in child process {pid}") - global child_pid child_pid = pid - global parent_pid - parent_pid = os.getpid() signal.signal(signal.SIGCHLD, receive_sigchld) signal.signal(signal.SIGPIPE, receive_sigpipe) signal.signal(signal.SIGTERM, receive_sigterm)