Skip to content

Commit

Permalink
修改文档及启动脚本
Browse files Browse the repository at this point in the history
  • Loading branch information
hectorqin committed Aug 2, 2023
1 parent ed98a9d commit bd341f3
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 40 deletions.
6 changes: 3 additions & 3 deletions doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,10 +236,10 @@ cd reader-server-$version
# windows 上直接点击 bin/startup.cmd 文件,直接点击运行会运行单用户模式

# startup 脚本支持以下选项,并且这些选项无法在配置文件修改,只能使用命令行参数修改
# -m single|multi 选择单用户/多用户模式,默认单用户
# -m single|multi 选择单用户/多用户模式,默认 以配置文件 conf/application.properties 为准
# -s reader-xx 选择 jar 文件名(不含.jar后缀),默认使用target目录里最新的jar
# -i inviteCode 设置多用户模式下的邀请码,默认 reader666
# -k secureKey 设置多用户模式下的管理密码,默认 readersk
# -i inviteCode 设置多用户模式下的邀请码,默认 以配置文件 conf/application.properties 为准
# -k secureKey 设置多用户模式下的管理密码,默认 以配置文件 conf/application.properties 为准

# 注意!!!startup 脚本在单用户模式下 默认占用 256m 内存,在多用户模式下 默认占用 1g 内存,如果内存不够,请自行修改脚本

Expand Down
15 changes: 14 additions & 1 deletion server/bin/shutdown.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,20 @@ rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
if not exist "%JAVA_HOME%\bin\jps.exe" echo "Please set the JAVA_HOME variable in your environment, We need jdk8 or later!\n请设置 JAVA_HOME 环境变量,需要jdk8及以上的java环境!" & EXIT /B 1

if not exist "%JAVA_HOME%\bin\java.exe" (
rem find java_home from reg
for /f "tokens=2*" %%i in ('reg query "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" /s ^| findstr "JavaHome"') do (
set "JAVA_HOME=%%j"
)
)
if exist "%JAVA_HOME%\bin\java.exe" (
set "JAVA=%JAVA_HOME%\bin\java.exe"
) else (
echo Please set the JAVA_HOME variable in your environment, We need jdk8 or later!
pause
EXIT /B 1
)

setlocal

Expand Down
86 changes: 63 additions & 23 deletions server/bin/startup.cmd
Original file line number Diff line number Diff line change
@@ -1,18 +1,39 @@
@echo off
rem Copyright 1999-2018 Alibaba Group Holding Ltd.
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
if not exist "%JAVA_HOME%\bin\java.exe" echo "请设置 JAVA_HOME 环境变量,需要jdk8及以上的java环境!" & EXIT /B 1
set "JAVA=%JAVA_HOME%\bin\java.exe"
REM Copyright 1999-2018 Alibaba Group Holding Ltd.
REM Licensed under the Apache License, Version 2.0 (the "License");
REM you may not use this file except in compliance with the License.
REM You may obtain a copy of the License at
REM
REM http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing, software
REM distributed under the License is distributed on an "AS IS" BASIS,
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
REM See the License for the specific language governing permissions and
REM limitations under the License.

if not exist "%JAVA_HOME%\bin\java.exe" (
rem find java_home from reg
for /f "tokens=2*" %%i in ('reg query "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" /s ^| findstr "JavaHome"') do (
set "JAVA_HOME=%%j"
)
)
if exist "%JAVA_HOME%\bin\java.exe" (
set "JAVA=%JAVA_HOME%\bin\java.exe"
) else (
rem check java command
for /f "usebackq delims=" %%i in (`where java`) do (
set JAVA=%%i
)

if not "%JAVA%" == "" if exist "%JAVA%" (
rem java path is exist
) else (
echo Please set the JAVA_HOME variable in your environment, We need jdk8 or later!
pause
EXIT /B 1
)
)

setlocal enabledelayedexpansion

Expand All @@ -31,10 +52,9 @@ if not "%NEWEST_JAR%"=="" (
set SERVER=%NEWEST_JAR:.jar=%
)

set SERVER %SERVER%
set MODE="single"
set INVITE_CODE="reader666"
set SECURE_KEY="readersk"
set INVITE_CODE=""
set SECURE_KEY=""
set MODE_INDEX=-1
set INVITE_CODE_INDEX=-1
set SERVER_INDEX=-1
Expand All @@ -61,22 +81,40 @@ for %%a in (%*) do (
)

rem if reader startup mode is single
if %MODE% == "" (
echo The running mode of the Reader is determined by the configuration file conf/application.properties. Please note that there is currently no memory limit set for the JVM.
)

if %MODE% == "single" (
echo "Reader 将以单用户模式运行"
echo The running mode of the Reader is determined by the configuration file conf/application.properties. Please note that the current memory limit is set to 256m.
set "READER_JVM_OPTS=-Xms256m -Xmx256m -Xmn128m"
)

rem if reader startup mode is multi-user
if not %MODE% == "single" (
echo "Reader 将以多用户模式运行。邀请码:%INVITE_CODE%,管理员密码:%SECURE_KEY%"
set "READER_OPTS=-Dreader.app.secure=true -Dreader.app.inviteCode=%INVITE_CODE% -Dreader.app.secureKey=%SECURE_KEY%"
if not %MODE% == "" if not %MODE% == "single" (
set READER_TIPS=""
set "READER_OPTS=-Dreader.app.secure=true"
if not "%INVITE_CODE%" == "" {
set "READER_OPTS=%READER_OPTS% -Dreader.app.inviteCode=%INVITE_CODE%"
set "READER_TIPS=%READER_TIPS% inviteCode: %INVITE_CODE%"
}
if not "%SECURE_KEY%" == "" {
set "READER_OPTS=%READER_OPTS% -Dreader.app.secureKey=%SECURE_KEY%"
set "READER_TIPS=%READER_TIPS% secureKey: %SECURE_KEY%"
}
if "%READER_TIPS%" == "" {
set "READER_TIPS=The invitation code and administrator password are determined by the configuration file conf\application.properties."
}
set "READER_TIPS=%READER_TIPS%. Please note that the current memory limit is set to 1g."

echo The Reader will running in multi-user mode. %READER_TIPS%

set "READER_JVM_OPTS=-server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=160m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof -XX:-UseLargePages"
)

rem set reader options
@REM set "READER_OPTS=%READER_OPTS% -Dloader.path=%BASE_DIR%/plugins,%BASE_DIR%/plugins/health,%BASE_DIR%/plugins/cmdb,%BASE_DIR%/plugins/selector"
set "READER_OPTS=%READER_OPTS% -Dreader.app.workDir=%BASE_DIR%"
set "READER_OPTS=%READER_OPTS% -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dreader.app.workDir=%BASE_DIR%"
set "READER_OPTS=%READER_OPTS% -jar %BASE_DIR%\target\%SERVER%.jar"

rem set reader spring config location
Expand All @@ -88,9 +126,11 @@ rem set reader log4j file location

set COMMAND="%JAVA%" %READER_JVM_OPTS% %READER_OPTS% %READER_CONFIG_OPTS% %READER_LOG4J_OPTS% reader.server %*

echo Run command:
echo %COMMAND%
echo

echo "Reader 正在启动中,你可以在 %BASE_DIR%\logs\start.out 查看日志"
echo Reader is starting, you can check the ${BASE_DIR}/logs/start.out

rem start reader command
%COMMAND%
42 changes: 29 additions & 13 deletions server/bin/startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,9 @@ if [ -n "$NEWEST_JAR" ]; then
SERVER=${NEWEST_JAR/.jar/}
fi

export SERVER
export MODE="single"
export INVITE_CODE="reader666"
export SECURE_KEY="readersk"
MODE=""
INVITE_CODE=""
SECURE_KEY=""
while getopts ":m:s:i:k:" opt
do
case $opt in
Expand All @@ -87,13 +86,34 @@ export CUSTOM_SEARCH_LOCATIONS=file:${BASE_DIR}/conf/
#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "single" ]]; then
if [[ "${MODE}" == "" ]]; then
echo "Reader 的运行模式以配置文件 conf/application.properties 为准。注意,当前未限制jvm内存"
elif [[ "${MODE}" == "single" ]]; then
JAVA_OPT="${JAVA_OPT} -Xms256m -Xmx256m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -Dreader.app.secure=false"
echo "Reader 将以单用户模式运行。注意,当前内存限制为256m"
else
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=160m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
JAVA_OPT="${JAVA_OPT} -Dreader.app.secure=true -Dreader.app.inviteCode=${INVITE_CODE} -Dreader.app.secureKey=${SECURE_KEY}"
JAVA_OPT="${JAVA_OPT} -Dreader.app.secure=true"

TIPS=""
if [[ "${INVITE_CODE}" != "" ]]; then
JAVA_OPT="${JAVA_OPT} -Dreader.app.inviteCode=${INVITE_CODE}"
TIPS="${TIPS} 邀请码:${INVITE_CODE}"
fi

if [[ "${SECURE_KEY}" != "" ]]; then
JAVA_OPT="${JAVA_OPT} -Dreader.app.secureKey=${SECURE_KEY}"
TIPS="${TIPS} 管理员密码:${SECURE_KEY}"
fi

if [[ "${TIPS}" == "" ]]; then
TIPS="邀请码和管理员密码以配置文件 conf/application.properties 为准"
fi
TIPS="${TIPS}。注意,当前内存限制为1g"
echo "Reader 将以多用户模式运行。${TIPS}"
fi

JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
Expand All @@ -105,7 +125,7 @@ else
fi

# JAVA_OPT="${JAVA_OPT} -Dloader.path=${BASE_DIR}/plugins,${BASE_DIR}/plugins/health,${BASE_DIR}/plugins/cmdb,${BASE_DIR}/plugins/selector"
JAVA_OPT="${JAVA_OPT} -Dreader.app.workDir=${BASE_DIR}"
JAVA_OPT="${JAVA_OPT} -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dreader.app.workDir=${BASE_DIR}"
JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/${SERVER}.jar"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} --spring.config.additional-location=${CUSTOM_SEARCH_LOCATIONS}"
Expand All @@ -116,13 +136,9 @@ if [ ! -d "${BASE_DIR}/logs" ]; then
mkdir ${BASE_DIR}/logs
fi

echo "启动命令:"
echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}"

if [[ "${MODE}" == "single" ]]; then
echo "Reader 将以单用户模式运行"
else
echo "Reader 将以多用户模式运行。邀请码:${INVITE_CODE},管理员密码:${SECURE_KEY}"
fi
echo

# check the start.out log output file
if [ ! -f "${BASE_DIR}/logs/start.out" ]; then
Expand Down

0 comments on commit bd341f3

Please sign in to comment.