def start_model_server()

in src/sagemaker_xgboost_container/mms_patch/model_server.py [0:0]


def start_model_server(is_multi_model=False, handler_service=DEFAULT_HANDLER_SERVICE, config_file=None):
    """Configure and start the model server.
    Args:
        is_multi_model (bool): Whether to start MxNet Model Server as single model or multi model. If
        handler_service (str): python path pointing to a module that defines a class with the following:
            - A ``handle`` method, which is invoked for all incoming inference requests to the model server.
            - A ``initialize`` method, which is invoked at model server start up for loading the model.
            Defaults to ``sagemaker_inference.default_handler_service``.
        config_file (str): path to user defined MMS properties file
    """
    if not config_file:
        _create_model_server_config_file()
        config_file = MMS_CONFIG_FILE

    if os.path.exists(REQUIREMENTS_PATH):
        _install_requirements()

    _set_python_path()

    mxnet_model_server_cmd = [
        "mxnet-model-server",
        "--start",
        "--mms-config",
        config_file,
        "--log-config",
        DEFAULT_MMS_LOG_FILE,
    ]

    if not is_multi_model:
        _adapt_to_mms_format(handler_service)
        mxnet_model_server_cmd += ["--model-store", DEFAULT_MMS_MODEL_DIRECTORY]

    logger.info(mxnet_model_server_cmd)
    subprocess.Popen(mxnet_model_server_cmd)

    mms_process = _retrieve_mms_server_process()
    _add_sigterm_handler(mms_process)
    _add_sigchild_handler()
    mms_process.wait()