|
|
@@ -3,6 +3,30 @@ SETLOCAL enabledelayedexpansion
|
|
|
|
|
|
TITLE Elasticsearch Service ${project.version}
|
|
|
|
|
|
+rem TODO: remove for Elasticsearch 6.x
|
|
|
+if not "%ES_MIN_MEM%" == "" set bad_env_var=1
|
|
|
+if not "%ES_MAX_MEM%" == "" set bad_env_var=1
|
|
|
+if not "%ES_HEAP_SIZE%" == "" set bad_env_var=1
|
|
|
+if not "%ES_HEAP_NEWSIZE%" == "" set bad_env_var=1
|
|
|
+if not "%ES_DIRECT_SIZE%" == "" set bad_env_var=1
|
|
|
+if not "%ES_USE_IPV4%" == "" set bad_env_var=1
|
|
|
+if not "%ES_GC_OPTS%" == "" set bad_env_var=1
|
|
|
+if not "%ES_GC_LOG_FILE%" == "" set bad_env_var=1
|
|
|
+if %bad_env_var% == 1 (
|
|
|
+ echo Error: encountered environment variables that are no longer supported
|
|
|
+ echo Use jvm.options or ES_JAVA_OPTS to configure the JVM
|
|
|
+ if not "%ES_MIN_MEM%" == "" echo ES_MIN_MEM=%ES_MIN_MEM%: set -Xms%ES_MIN_MEM% in jvm.options or add "-Xms%ES_MIN_MEM%" to ES_JAVA_OPTS
|
|
|
+ if not "%ES_MAX_MEM%" == "" echo ES_MAX_MEM=%ES_MAX_MEM%: set -Xms%ES_MAX_MEM% in jvm.options or add "-Xmx%ES_MAX_MEM%" to ES_JAVA_OPTS
|
|
|
+ if not "%ES_HEAP_SIZE%" == "" echo ES_HEAP_SIZE=%ES_HEAP_SIZE%: set -Xms%ES_HEAP_SIZE% and -Xmx%ES_HEAP_SIZE% in jvm.options or add "-Xms%ES_HEAP_SIZE% -Xmx%ES_HEAP_SIZE%" to ES_JAVA_OPTS
|
|
|
+ if not "%ES_HEAP_NEWSIZE%" == "" echo ES_HEAP_NEWSIZE=%ES_HEAP_NEWSIZE%: set -Xmn%ES_HEAP_NEWSIZE% in jvm.options or add "-Xmn%ES_HEAP_SIZE%" to ES_JAVA_OPTS
|
|
|
+ if not "%ES_DIRECT_SIZE%" == "" echo ES_DIRECT_SIZE=%ES_DIRECT_SIZE%: set -XX:MaxDirectMemorySize=%ES_DIRECT_SIZE% in jvm.options or add "-XX:MaxDirectMemorySize=%ES_DIRECT_SIZE%" to ES_JAVA_OPTS
|
|
|
+ if not "%ES_USE_IPV4%" == "" echo ES_USE_IPV4=%ES_USE_IPV4%: set -Djava.net.preferIPv4Stack=true in jvm.options or add "-Djava.net.preferIPv4Stack=true" to ES_JAVA_OPTS
|
|
|
+ if not "%ES_GC_OPTS%" == "" echo ES_GC_OPTS=%ES_GC_OPTS%: set %ES_GC_OPTS: = and % in jvm.options or add "%ES_GC_OPTS%" to ES_JAVA_OPTS
|
|
|
+ if not "%ES_GC_LOG_FILE%" == "" echo ES_GC_LOG_FILE=%ES_GC_LOG_FILE%: set -Xloggc:%ES_GC_LOG_FILE% in jvm.options or add "-Xloggc:%ES_GC_LOG_FILE%" to ES_JAVA_OPTS"
|
|
|
+ exit /b 1
|
|
|
+)
|
|
|
+rem end TODO: remove for Elasticsearch 6.x
|
|
|
+
|
|
|
if NOT DEFINED JAVA_HOME goto err
|
|
|
|
|
|
if not "%CONF_FILE%" == "" goto conffileset
|
|
|
@@ -131,34 +155,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 +253,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 +300,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
|