diff --git a/CMakeLists.txt b/CMakeLists.txt
index cad0bb5bc638e08bd05a573fe548c7a81323435c..11fd0f09a6aa5adfa5971580ba8babe55d12d550 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -104,6 +104,7 @@ if (SERVER OR CLIENT)
include(external/brpc)
include(external/gflags)
include(external/glog)
+ include(external/utf8proc)
if (WITH_PYTHON)
include(external/pybind11)
include(external/python)
diff --git a/README.md b/README.md
index 34bc154956ec62cf66de97071986d174d97d863b..521a13d3d38b2ecfee79eccee42fb9f0a0f5327c 100644
--- a/README.md
+++ b/README.md
@@ -267,6 +267,15 @@ output
{'err_no': 0, 'err_msg': '', 'key': ['res'], 'value': ["['土地整治与土壤修复研究中心', '华南农业大学1素图']"]}
```
+
Stop Serving/Pipeline service
+
+**Method one** :Ctrl+C to quit
+
+**Method Two** :In the path where starting the Serving/Pipeline service or the path which environment variable SERVING_HOME set (the file named ProcessInfo.json exists in this path)
+
+```
+python3 -m paddle_serving_server.serve stop
+```
Document
diff --git a/README_CN.md b/README_CN.md
index d4bcc1a205bb787971373293f697b23b55435979..efd184eb249c5cc7604e8671a286577b3fb62641 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -269,6 +269,16 @@ python3 pipeline_rpc_client.py
{'err_no': 0, 'err_msg': '', 'key': ['res'], 'value': ["['土地整治与土壤修复研究中心', '华南农业大学1素图']"]}
```
+关闭Serving/Pipeline服务
+
+**方式一** :Ctrl+C关停服务
+
+**方式二** :在启动Serving/Pipeline服务路径或者环境变量SERVING_HOME路径下(该路径下存在文件ProcessInfo.json)
+
+```
+python3 -m paddle_serving_server.serve stop
+```
+
文档
### 新手教程
diff --git a/cmake/external/utf8proc.cmake b/cmake/external/utf8proc.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..3478e77fa520e75d68a83160b04f91163dbe2e2a
--- /dev/null
+++ b/cmake/external/utf8proc.cmake
@@ -0,0 +1,51 @@
+# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+INCLUDE(ExternalProject)
+SET(GIT_URL https://github.com)
+SET(UTF8PROC_PREFIX_DIR ${THIRD_PARTY_PATH}/utf8proc)
+SET(UTF8PROC_INSTALL_DIR ${THIRD_PARTY_PATH}/install/utf8proc)
+# As we add extra features for utf8proc, we use the non-official repo
+SET(UTF8PROC_REPOSITORY ${GIT_URL}/JuliaStrings/utf8proc.git)
+SET(UTF8PROC_TAG v2.6.1)
+
+IF(WIN32)
+ SET(UTF8PROC_LIBRARIES "${UTF8PROC_INSTALL_DIR}/lib/utf8proc_static.lib")
+ add_definitions(-DUTF8PROC_STATIC)
+ELSE(WIN32)
+ SET(UTF8PROC_LIBRARIES "${UTF8PROC_INSTALL_DIR}/lib/libutf8proc.a")
+ENDIF(WIN32)
+
+INCLUDE_DIRECTORIES(${UTF8PROC_INSTALL_DIR}/include)
+
+ExternalProject_Add(
+ extern_utf8proc
+ ${EXTERNAL_PROJECT_LOG_ARGS}
+ ${SHALLOW_CLONE}
+ GIT_REPOSITORY ${UTF8PROC_REPOSITORY}
+ GIT_TAG ${UTF8PROC_TAG}
+ PREFIX ${UTF8PROC_PREFIX_DIR}
+ UPDATE_COMMAND ""
+ CMAKE_ARGS -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DBUILD_SHARED=ON
+ -DBUILD_STATIC=ON
+ -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+ -DCMAKE_INSTALL_PREFIX:PATH=${UTF8PROC_INSTALL_DIR}
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ BUILD_BYPRODUCTS ${UTF8PROC_LIBRARIES}
+)
+
+ADD_LIBRARY(utf8proc STATIC IMPORTED GLOBAL)
+SET_PROPERTY(TARGET utf8proc PROPERTY IMPORTED_LOCATION ${UTF8PROC_LIBRARIES})
+ADD_DEPENDENCIES(utf8proc extern_utf8proc)
diff --git a/cmake/paddlepaddle.cmake b/cmake/paddlepaddle.cmake
index 6f4dbe4fca15943d474b74173532e194c549476d..6c0e3261e361bbf8d3208fea21eb01ba57381719 100644
--- a/cmake/paddlepaddle.cmake
+++ b/cmake/paddlepaddle.cmake
@@ -30,7 +30,7 @@ message( "WITH_GPU = ${WITH_GPU}")
# Paddle Version should be one of:
# latest: latest develop build
# version number like 1.5.2
-SET(PADDLE_VERSION "2.2.0-rc0")
+SET(PADDLE_VERSION "2.2.0")
if (WITH_GPU)
message("CUDA: ${CUDA_VERSION}, CUDNN_MAJOR_VERSION: ${CUDNN_MAJOR_VERSION}")
# cuda 11.0 is not supported, 11.2 would be added.
diff --git a/core/general-server/CMakeLists.txt b/core/general-server/CMakeLists.txt
index 9319d9ee5646570dfcc8b10b4bea1f4eeb290ef3..7875d42dc848a29b455a5c0681ab3ba60c741791 100644
--- a/core/general-server/CMakeLists.txt
+++ b/core/general-server/CMakeLists.txt
@@ -3,7 +3,7 @@ include(op/CMakeLists.txt)
include(proto/CMakeLists.txt)
add_executable(serving ${serving_srcs})
-add_dependencies(serving pdcodegen paddle_inference_engine pdserving paddle_inference cube-api utils)
+add_dependencies(serving pdcodegen paddle_inference_engine pdserving paddle_inference cube-api utils utf8proc)
if (WITH_GPU)
add_dependencies(serving paddle_inference_engine)
@@ -30,7 +30,7 @@ target_link_libraries(serving protobuf)
target_link_libraries(serving pdserving)
target_link_libraries(serving cube-api)
target_link_libraries(serving utils)
-
+target_link_libraries(serving utf8proc)
if(WITH_GPU)
target_link_libraries(serving ${CUDA_LIBRARIES})