|
@@ -131,34 +131,92 @@ if exist "%JAVA_HOME%"\bin\client\jvm.dll (
|
|
|
)
|
|
|
|
|
|
:foundJVM
|
|
|
-if "%ES_MIN_MEM%" == "" set ES_MIN_MEM=${heap.min}
|
|
|
-if "%ES_MAX_MEM%" == "" set ES_MAX_MEM=${heap.max}
|
|
|
-
|
|
|
-if NOT "%ES_HEAP_SIZE%" == "" set ES_MIN_MEM=%ES_HEAP_SIZE%
|
|
|
-if NOT "%ES_HEAP_SIZE%" == "" set ES_MAX_MEM=%ES_HEAP_SIZE%
|
|
|
+if "%ES_JVM_OPTIONS%" == "" (
|
|
|
+set ES_JVM_OPTIONS="%ES_HOME%\config\jvm.options"
|
|
|
+)
|
|
|
|
|
|
-call:convertxm %ES_MIN_MEM% JVM_XMS
|
|
|
-call:convertxm %ES_MAX_MEM% JVM_XMX
|
|
|
+if not "%ES_JAVA_OPTS%" == "" set ES_JAVA_OPTS=%ES_JAVA_OPTS: =;%
|
|
|
+
|
|
|
+@setlocal
|
|
|
+for /F "usebackq delims=" %%a in (`findstr /b \- "%ES_JVM_OPTIONS%"`) do set JVM_OPTIONS=!JVM_OPTIONS!%%a;
|
|
|
+@endlocal & set ES_JAVA_OPTS=%JVM_OPTIONS%%ES_JAVA_OPTS%
|
|
|
+
|
|
|
+if "%ES_JAVA_OPTS:~-1%"==";" set ES_JAVA_OPTS=%ES_JAVA_OPTS:~0,-1%
|
|
|
+
|
|
|
+@setlocal EnableDelayedExpansion
|
|
|
+for %%a in ("%ES_JAVA_OPTS:;=","%") do (
|
|
|
+ set var=%%a
|
|
|
+ if "!var:~1,4!" == "-Xms" (
|
|
|
+ if not "!JVM_MS!" == "" (
|
|
|
+ echo duplicate min heap size settings found
|
|
|
+ goto:eof
|
|
|
+ )
|
|
|
+ set XMS=!var:~5,-1!
|
|
|
+ call:convertxm !XMS! JVM_MS
|
|
|
+ )
|
|
|
+ if "!var:~1,16!" == "-XX:MinHeapSize=" (
|
|
|
+ if not "!JVM_MS!" == "" (
|
|
|
+ echo duplicate min heap size settings found
|
|
|
+ goto:eof
|
|
|
+ )
|
|
|
+ set XMS=!var:~17,-1!
|
|
|
+ call:convertxm !XMS! JVM_MS
|
|
|
+ )
|
|
|
+ if "!var:~1,4!" == "-Xmx" (
|
|
|
+ if not "!JVM_MX!" == "" (
|
|
|
+ echo duplicate max heap size settings found
|
|
|
+ goto:eof
|
|
|
+ )
|
|
|
+ set XMX=!var:~5,-1!
|
|
|
+ call:convertxm !XMX! JVM_MX
|
|
|
+ )
|
|
|
+ if "!var:~1,16!" == "-XX:MaxHeapSize=" (
|
|
|
+ if not "!JVM_MX!" == "" (
|
|
|
+ echo duplicate max heap size settings found
|
|
|
+ goto:eof
|
|
|
+ )
|
|
|
+ set XMX=!var:~17,-1!
|
|
|
+ call:convertxm !XMX! JVM_MX
|
|
|
+ )
|
|
|
+ if "!var:~1,4!" == "-Xss" (
|
|
|
+ if not "!JVM_SS!" == "" (
|
|
|
+ echo duplicate thread stack size settings found
|
|
|
+ exit 1
|
|
|
+ )
|
|
|
+ set XSS=!var:~5,-1!
|
|
|
+ call:convertxk !XSS! JVM_SS
|
|
|
+ )
|
|
|
+ if "!var:~1,20!" == "-XX:ThreadStackSize=" (
|
|
|
+ if not "!JVM_SS!" == "" (
|
|
|
+ echo duplicate thread stack size settings found
|
|
|
+ goto:eof
|
|
|
+ )
|
|
|
+ set XSS=!var:~21,-1!
|
|
|
+ call:convertxk !XSS! JVM_SS
|
|
|
+ )
|
|
|
+)
|
|
|
+@endlocal & set JVM_MS=%JVM_MS% & set JVM_MX=%JVM_MX% & set JVM_SS=%JVM_SS%
|
|
|
|
|
|
-REM java_opts might be empty - init to avoid tripping commons daemon (if the command starts with ;)
|
|
|
-if "%JAVA_OPTS%" == "" set JAVA_OPTS=-XX:+UseParNewGC
|
|
|
+if "%JVM_MS%" == "" (
|
|
|
+ echo minimum heap size not set; configure via %ES_JVM_OPTIONS% or ES_JAVA_OPTS
|
|
|
+ goto:eof
|
|
|
+)
|
|
|
+if "%JVM_MX%" == "" (
|
|
|
+ echo maximum heap size not set; configure via %ES_JVM_OPTIONS% or ES_JAVA_OPTS
|
|
|
+ goto:eof
|
|
|
+)
|
|
|
+if "%JVM_SS%" == "" (
|
|
|
+ echo thread stack size not set; configure via %ES_JVM_OPTIONS% or ES_JAVA_OPTS
|
|
|
+ goto:eof
|
|
|
+)
|
|
|
|
|
|
CALL "%ES_HOME%\bin\elasticsearch.in.bat"
|
|
|
-
|
|
|
-rem thread stack size
|
|
|
-set JVM_SS=256
|
|
|
-
|
|
|
if "%DATA_DIR%" == "" set DATA_DIR=%ES_HOME%\data
|
|
|
|
|
|
if "%CONF_DIR%" == "" set CONF_DIR=%ES_HOME%\config
|
|
|
|
|
|
set ES_PARAMS=-Delasticsearch;-Des.path.home="%ES_HOME%";-Des.default.path.logs="%LOG_DIR%";-Des.default.path.data="%DATA_DIR%";-Des.default.path.conf="%CONF_DIR%"
|
|
|
|
|
|
-set JVM_OPTS=%JAVA_OPTS: =;%
|
|
|
-
|
|
|
-if not "%ES_JAVA_OPTS%" == "" set JVM_ES_JAVA_OPTS=%ES_JAVA_OPTS: =#%
|
|
|
-if not "%ES_JAVA_OPTS%" == "" set JVM_OPTS=%JVM_OPTS%;%JVM_ES_JAVA_OPTS%
|
|
|
-
|
|
|
if "%ES_START_TYPE%" == "" set ES_START_TYPE=manual
|
|
|
if "%ES_STOP_TIMEOUT%" == "" set ES_STOP_TIMEOUT=0
|
|
|
|
|
@@ -171,8 +229,7 @@ if not "%SERVICE_USERNAME%" == "" (
|
|
|
)
|
|
|
)
|
|
|
|
|
|
-"%EXECUTABLE%" //IS//%SERVICE_ID% --Startup %ES_START_TYPE% --StopTimeout %ES_STOP_TIMEOUT% --StartClass org.elasticsearch.bootstrap.Elasticsearch --StopClass org.elasticsearch.bootstrap.Elasticsearch --StartMethod main --StopMethod close --Classpath "%ES_CLASSPATH%" --JvmSs %JVM_SS% --JvmMs %JVM_XMS% --JvmMx %JVM_XMX% --JvmOptions %JVM_OPTS% ++JvmOptions %ES_PARAMS% %LOG_OPTS% --PidFile "%SERVICE_ID%.pid" --DisplayName "%SERVICE_DISPLAY_NAME%" --Description "%SERVICE_DESCRIPTION%" --Jvm "%%JAVA_HOME%%%JVM_DLL%" --StartMode jvm --StopMode jvm --StartPath "%ES_HOME%" %SERVICE_PARAMS%
|
|
|
-
|
|
|
+"%EXECUTABLE%" //IS//%SERVICE_ID% --Startup %ES_START_TYPE% --StopTimeout %ES_STOP_TIMEOUT% --StartClass org.elasticsearch.bootstrap.Elasticsearch --StopClass org.elasticsearch.bootstrap.Elasticsearch --StartMethod main --StopMethod close --Classpath "%ES_CLASSPATH%" --JvmMs %JVM_MS% --JvmMx %JVM_MX% --JvmSs %JVM_SS% --JvmOptions %ES_JAVA_OPTS% ++JvmOptions %ES_PARAMS% %LOG_OPTS% --PidFile "%SERVICE_ID%.pid" --DisplayName "%SERVICE_DISPLAY_NAME%" --Description "%SERVICE_DESCRIPTION%" --Jvm "%%JAVA_HOME%%%JVM_DLL%" --StartMode jvm --StopMode jvm --StartPath "%ES_HOME%" %SERVICE_PARAMS%
|
|
|
|
|
|
if not errorlevel 1 goto installed
|
|
|
echo Failed installing '%SERVICE_ID%' service
|
|
@@ -219,6 +276,36 @@ set /a conv=%conv% * 1024
|
|
|
set "%~2=%conv%"
|
|
|
goto:eof
|
|
|
|
|
|
+:convertxk
|
|
|
+set value=%~1
|
|
|
+rem extract last char (unit)
|
|
|
+set unit=%value:~-1%
|
|
|
+rem assume the unit is specified
|
|
|
+set conv=%value:~0,-1%
|
|
|
+
|
|
|
+if "%unit%" == "k" goto kilo
|
|
|
+if "%unit%" == "K" goto kilo
|
|
|
+if "%unit%" == "m" goto mega
|
|
|
+if "%unit%" == "M" goto mega
|
|
|
+if "%unit%" == "g" goto giga
|
|
|
+if "%unit%" == "G" goto giga
|
|
|
+
|
|
|
+rem no unit found, must be bytes; consider the whole value
|
|
|
+set conv=%value%
|
|
|
+rem convert to KB
|
|
|
+set /a conv=%conv% / 1024
|
|
|
+goto kilo
|
|
|
+:mega
|
|
|
+rem convert to KB
|
|
|
+set /a conv=%conv% * 1024
|
|
|
+goto kilo
|
|
|
+:giga
|
|
|
+rem convert to KB
|
|
|
+set /a conv=%conv% * 1024 * 1024
|
|
|
+:kilo
|
|
|
+set "%~2=%conv%"
|
|
|
+goto:eof
|
|
|
+
|
|
|
:conffileset
|
|
|
echo CONF_FILE setting is no longer supported. elasticsearch.yml must be placed in the config directory and cannot be renamed.
|
|
|
goto:eof
|