in src/sagemaker_sklearn_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()