@@ -5,6 +5,9 @@ PID_FILE="${TRIM_PKGVAR}/app.pid"
55MEFRPC_LOG=" ${TRIM_PKGVAR} /mefrpc.log"
66SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
77PKG_DIR=" ${TRIM_APPDEST:- $(cd " ${SCRIPT_DIR} /.." && pwd)} "
8+ MEFRPC_HOME=" ${TRIM_PKGVAR} "
9+ mkdir -p " ${MEFRPC_HOME} " >> ${LOG_FILE} 2>&1
10+ export HOME=" ${MEFRPC_HOME} "
811MEFRPC_BIN=" "
912for p in " ${PKG_DIR} /www/mefrpc" " ${PKG_DIR} /app/www/mefrpc" " ${PKG_DIR} /mefrpc" " ${PKG_DIR} /target/mefrpc" " ${PKG_DIR} /app/mefrpc" " ${PKG_DIR} /app/bin/mefrpc" " ${SCRIPT_DIR} /../mefrpc" ; do
1013 if [ -f " ${p} " ]; then
@@ -16,11 +19,21 @@ if [ -z "${MEFRPC_BIN}" ]; then
1619 MEFRPC_BIN=" ${PKG_DIR} /mefrpc"
1720fi
1821MEFRPC_BIND_HOST=" ${MEFRPC_BIND_HOST:- 0.0.0.0} "
22+ MEFRPC_WEBUI_PORT=" ${MEFRPC_WEBUI_PORT:- 1201} "
23+ MEFRPC_START_RETRY_MAX=" ${MEFRPC_START_RETRY_MAX:- 6} "
24+ MEFRPC_START_RETRY_DELAY=" ${MEFRPC_START_RETRY_DELAY:- 5} "
25+ MEFRPC_ALLOW_PUBLIC_ACCESS_RAW=" ${WIZARD_CONFIG_WEBUI_PUBLIC_ACCESS:- ${wizard_config_webui_public_access:- } } "
26+ if [ " ${MEFRPC_ALLOW_PUBLIC_ACCESS_RAW} " = " true" ] || [ " ${MEFRPC_ALLOW_PUBLIC_ACCESS_RAW} " = " 1" ]; then
27+ MEFRPC_ALLOW_PUBLIC_ACCESS=" --webui-allow-public-access"
28+ else
29+ MEFRPC_ALLOW_PUBLIC_ACCESS=" "
30+ fi
31+ MEFRPC_WEBUI_PASS=" ${WIZARD_CONFIG_WEBUI_PASS:- ${wizard_config_webui_pass:- ${WIZARD_WEBUI_PASS:- ${wizard_webui_pass:- admin} } } } "
1932MEFRPC_RUN=" \" ${MEFRPC_BIN} \" "
2033if command -v stdbuf > /dev/null 2>&1 ; then
2134 MEFRPC_RUN=" stdbuf -oL -eL ${MEFRPC_RUN} "
2235fi
23- CMD=" cd \" ${PKG_DIR} \" && exec ${MEFRPC_RUN} --webui-addr \" ${MEFRPC_BIND_HOST} \" >> \" ${MEFRPC_LOG} \" 2>&1"
36+ CMD=" cd \" ${PKG_DIR} \" && exec ${MEFRPC_RUN} ${MEFRPC_ALLOW_PUBLIC_ACCESS} --webui-addr \" ${MEFRPC_BIND_HOST} \" --webui-port \" ${MEFRPC_WEBUI_PORT} \" --webui-pass \" ${MEFRPC_WEBUI_PASS }\" >> \" ${MEFRPC_LOG} \" 2>&1"
2437
2538log_msg () {
2639 echo " $( date ' +%Y-%m-%d %H:%M:%S' ) - $1 " >> ${LOG_FILE}
@@ -43,19 +56,21 @@ start_process() {
4356 return 1
4457 fi
4558 chmod +x " ${MEFRPC_BIN} " >> ${LOG_FILE} 2>&1
46- # run cmd to start process
47- bash -c " ${CMD} " >> ${LOG_FILE} 2>&1 &
48- # write pid to pidfile
49- local start_pid=$!
50- printf " %s" " ${start_pid} " > ${PID_FILE}
51- sleep 1
52- if ! check_process " ${start_pid} " ; then
53- log_msg " process exited immediately, check ${MEFRPC_LOG} "
54- return 1
55- fi
56- # log_msg "CMD = ${CMD}"
57- # log_msg "pid = $!"
58- return 0
59+ local attempt=1
60+ while [ " ${attempt} " -le " ${MEFRPC_START_RETRY_MAX} " ]; do
61+ bash -c " ${CMD} " >> ${LOG_FILE} 2>&1 &
62+ local start_pid=$!
63+ sleep 1
64+ if check_process " ${start_pid} " ; then
65+ printf " %s" " ${start_pid} " > ${PID_FILE}
66+ return 0
67+ fi
68+ log_msg " process exited immediately, retrying (${attempt} /${MEFRPC_START_RETRY_MAX} )"
69+ attempt=$(( attempt + 1 ))
70+ sleep " ${MEFRPC_START_RETRY_DELAY} "
71+ done
72+ log_msg " process failed after ${MEFRPC_START_RETRY_MAX} attempts, check ${MEFRPC_LOG} "
73+ return 1
5974}
6075
6176stop_process () {
0 commit comments