mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-08 11:05:59 +08:00
fix: reconstruct the script of 'make start' 'make stop' and 'make check' (#1953)
* fix: del the error world * fix: refactoring scripts * fix: del nounset * rm set error * rm set error * replace openim::log::info * replace openim::log::info * replace openim::log::info * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * fix: fix the error output format * log * fix: fix the error * log * log * fix: fi the code error * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * log * fix: use printf replace the echo --------- Co-authored-by: skiffer-git <44203734@qq.com>
This commit is contained in:
+73
-43
@@ -16,70 +16,100 @@
|
||||
#FIXME This script is the startup script for multiple servers.
|
||||
#FIXME The full names of the shell scripts that need to be started are placed in the `need_to_start_server_shell` array.
|
||||
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
|
||||
|
||||
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
||||
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
||||
|
||||
openim::log::info "\n# Begin to start all openim service scripts"
|
||||
|
||||
set +o errexit
|
||||
# Function to execute the scripts.
|
||||
function execute_start_scripts() {
|
||||
for script_path in "${OPENIM_SERVER_SCRIPT_START_LIST[@]}"; do
|
||||
# Extract the script name without extension for argument generation.
|
||||
script_name_with_prefix=$(basename "$script_path" .sh)
|
||||
|
||||
# Remove the "openim-" prefix.
|
||||
script_name=${script_name_with_prefix#openim-}
|
||||
|
||||
# Construct the argument based on the script name.
|
||||
arg="openim::${script_name}::start"
|
||||
|
||||
# Check if the script file exists and is executable.
|
||||
if [[ -x "$script_path" ]]; then
|
||||
openim::log::info "Starting script: ${script_path##*/}" # Log the script name.
|
||||
|
||||
# Execute the script with the constructed argument.
|
||||
result=$("$script_path" "$arg")
|
||||
if [[ $? -ne 0 ]]; then
|
||||
openim::log::error "Start script: ${script_path##*/} failed"
|
||||
openim::log::error "$result"
|
||||
return 1
|
||||
fi
|
||||
|
||||
else
|
||||
openim::log::errexit "Script ${script_path##*/} is missing or not executable."
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
openim::golang::check_openim_binaries
|
||||
if [[ $? -ne 0 ]]; then
|
||||
openim::log::error "OpenIM binaries are not found. Please run 'make build' to build binaries."
|
||||
"${OPENIM_ROOT}"/scripts/build-all-service.sh
|
||||
fi
|
||||
set -o errexit
|
||||
|
||||
|
||||
"${OPENIM_ROOT}"/scripts/init-config.sh --skip
|
||||
|
||||
echo "You need to start the following scripts in order: ${OPENIM_SERVER_SCRIPTARIES[@]}"
|
||||
openim::log::install_errexit
|
||||
|
||||
# Function to execute the scripts.
|
||||
function execute_scripts() {
|
||||
for script_path in "${OPENIM_SERVER_SCRIPT_START_LIST[@]}"; do
|
||||
# Extract the script name without extension for argument generation.
|
||||
script_name_with_prefix=$(basename "$script_path" .sh)
|
||||
|
||||
# Remove the "openim-" prefix.
|
||||
script_name=${script_name_with_prefix#openim-}
|
||||
|
||||
# Construct the argument based on the script name.
|
||||
arg="openim::${script_name}::start"
|
||||
|
||||
# Check if the script file exists and is executable.
|
||||
if [[ -x "$script_path" ]]; then
|
||||
openim::log::status "Starting script: ${script_path##*/}" # Log the script name.
|
||||
|
||||
# Execute the script with the constructed argument.
|
||||
"$script_path" "$arg"
|
||||
|
||||
# Check if the script executed successfully.
|
||||
if [[ $? -eq 0 ]]; then
|
||||
openim::log::info "${script_path##*/} executed successfully."
|
||||
else
|
||||
openim::log::errexit "Error executing ${script_path##*/}."
|
||||
fi
|
||||
else
|
||||
openim::log::errexit "Script ${script_path##*/} is missing or not executable."
|
||||
fi
|
||||
done
|
||||
sleep 0.5
|
||||
}
|
||||
|
||||
|
||||
# TODO Prelaunch tools, simple for now, can abstract functions later
|
||||
TOOLS_START_SCRIPTS_PATH=${START_SCRIPTS_PATH}/openim-tools.sh
|
||||
|
||||
openim::log::info "\n## Pre Starting OpenIM services"
|
||||
openim::log::status "\n## Pre Starting OpenIM services"
|
||||
${TOOLS_START_SCRIPTS_PATH} openim::tools::pre-start
|
||||
|
||||
openim::log::info "\n## Starting OpenIM services"
|
||||
execute_scripts
|
||||
|
||||
openim::log::info "\n## Post Starting OpenIM services"
|
||||
result=$("${OPENIM_ROOT}"/scripts/stop-all.sh)
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "+++ cat openim log file >>> ${LOG_FILE}"
|
||||
openim::log::error "Some programs have not exited; the start process is aborted .\n $result"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
openim::log::status "\n## Starting openim scripts: "
|
||||
execute_start_scripts
|
||||
|
||||
sleep 2
|
||||
|
||||
result=$(. $(dirname ${BASH_SOURCE})/install/openim-msgtransfer.sh openim::msgtransfer::check)
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "+++ cat openim log file >>> ${LOG_FILE}"
|
||||
openim::log::error "The program may fail to start.\n $result"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
result=$(openim::util::check_process_names ${OPENIM_ALL_SERVICE_LIBRARIES_NO_TRANSFER[@]})
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "+++ cat openim log file >>> ${LOG_FILE}"
|
||||
openim::log::error "The program may fail to start.\n $result"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
openim::log::info "\n## Post Starting openim services"
|
||||
${TOOLS_START_SCRIPTS_PATH} openim::tools::post-start
|
||||
|
||||
openim::color::echo $COLOR_BLUE "✨ All OpenIM services have been successfully started!"
|
||||
openim::log::success "All openim services have been successfully started!"
|
||||
Reference in New Issue
Block a user