def main(): try: args = run_parser(sys.argv[1:]) if not validate_parameters(args): raise Exception('Invalid parameters') auth_keys = Keys.load_from_file(args.s) method = get_method(args, auth_keys) run_method(method) except IOError as e: handle_failure() sys.exit(63) except Exception as e: handle_failure() sys.exit(255)
def start_server(port, auth_file_path): handler = bankhandler.BankHandler() term_handler = handler.termination_hook() auth_keys = Keys.random() auth_keys.export_auth_file(auth_file_path) term_socket = banksocket.listen('0.0.0.0', port, handler, auth_keys) def sigterm_hook(signum, stack_frame): nonlocal term_socket, term_handler term_socket() term_handler() print('Finished terminating', file=sys.stderr) signal.signal(signal.SIGTERM, sigterm_hook) signal.signal(signal.SIGINT, sigterm_hook) handler.serve_forever()