Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

elasticsearch-service.bat 7.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. setlocal enableextensions
  4. call "%~dp0elasticsearch-env.bat" || exit /b 1
  5. set EXECUTABLE=%ES_HOME%\bin\elasticsearch-service-x64.exe
  6. if "%SERVICE_ID%" == "" set SERVICE_ID=elasticsearch-service-x64
  7. set ARCH=64-bit
  8. if EXIST "%EXECUTABLE%" goto okExe
  9. echo elasticsearch-service-x64.exe was not found...
  10. exit /B 1
  11. :okExe
  12. set ES_VERSION=6.8.0
  13. if "%SERVICE_LOG_DIR%" == "" set SERVICE_LOG_DIR=%ES_HOME%\logs
  14. if "x%1x" == "xx" goto displayUsage
  15. set SERVICE_CMD=%1
  16. shift
  17. if "x%1x" == "xx" goto checkServiceCmd
  18. set SERVICE_ID=%1
  19. :checkServiceCmd
  20. if "%LOG_OPTS%" == "" set LOG_OPTS=--LogPath "%SERVICE_LOG_DIR%" --LogPrefix "%SERVICE_ID%" --StdError auto --StdOutput auto
  21. if /i %SERVICE_CMD% == install goto doInstall
  22. if /i %SERVICE_CMD% == remove goto doRemove
  23. if /i %SERVICE_CMD% == start goto doStart
  24. if /i %SERVICE_CMD% == stop goto doStop
  25. if /i %SERVICE_CMD% == manager goto doManagment
  26. echo Unknown option "%SERVICE_CMD%"
  27. :displayUsage
  28. echo.
  29. echo Usage: elasticsearch-service.bat install^|remove^|start^|stop^|manager [SERVICE_ID]
  30. goto:eof
  31. :doStart
  32. "%EXECUTABLE%" //ES//%SERVICE_ID% %LOG_OPTS%
  33. if not errorlevel 1 goto started
  34. echo Failed starting '%SERVICE_ID%' service
  35. goto:eof
  36. :started
  37. echo The service '%SERVICE_ID%' has been started
  38. goto:eof
  39. :doStop
  40. "%EXECUTABLE%" //SS//%SERVICE_ID% %LOG_OPTS%
  41. if not errorlevel 1 goto stopped
  42. echo Failed stopping '%SERVICE_ID%' service
  43. goto:eof
  44. :stopped
  45. echo The service '%SERVICE_ID%' has been stopped
  46. goto:eof
  47. :doManagment
  48. set EXECUTABLE_MGR=%ES_HOME%\bin\elasticsearch-service-mgr.exe
  49. "%EXECUTABLE_MGR%" //ES//%SERVICE_ID%
  50. if not errorlevel 1 goto managed
  51. echo Failed starting service manager for '%SERVICE_ID%'
  52. goto:eof
  53. :managed
  54. echo Successfully started service manager for '%SERVICE_ID%'.
  55. goto:eof
  56. :doRemove
  57. rem Remove the service
  58. "%EXECUTABLE%" //DS//%SERVICE_ID% %LOG_OPTS%
  59. if not errorlevel 1 goto removed
  60. echo Failed removing '%SERVICE_ID%' service
  61. goto:eof
  62. :removed
  63. echo The service '%SERVICE_ID%' has been removed
  64. goto:eof
  65. :doInstall
  66. echo Installing service : "%SERVICE_ID%"
  67. echo Using JAVA_HOME (%ARCH%): "%JAVA_HOME%"
  68. rem Check JVM server dll first
  69. if exist "%JAVA_HOME%\jre\bin\server\jvm.dll" (
  70. set JVM_DLL=\jre\bin\server\jvm.dll
  71. goto foundJVM
  72. )
  73. rem Check 'server' JRE (JRE installed on Windows Server)
  74. if exist "%JAVA_HOME%\bin\server\jvm.dll" (
  75. set JVM_DLL=\bin\server\jvm.dll
  76. goto foundJVM
  77. ) else (
  78. echo JAVA_HOME points to an invalid Java installation (no jvm.dll found in "%JAVA_HOME%"^). Exiting...
  79. goto:eof
  80. )
  81. :foundJVM
  82. set ES_JVM_OPTIONS=%ES_PATH_CONF%\jvm.options
  83. if not "%ES_JAVA_OPTS%" == "" set ES_JAVA_OPTS=%ES_JAVA_OPTS: =;%
  84. @setlocal
  85. for /F "usebackq delims=" %%a in (`"%JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.JvmOptionsParser" "!ES_JVM_OPTIONS!" || echo jvm_options_parser_failed"`) do set JVM_OPTIONS=%%a
  86. @endlocal & set "MAYBE_JVM_OPTIONS_PARSER_FAILED=%JVM_OPTIONS%" & set ES_JAVA_OPTS=%JVM_OPTIONS:${ES_TMPDIR}=!ES_TMPDIR!% %ES_JAVA_OPTS%
  87. if "%MAYBE_JVM_OPTIONS_PARSER_FAILED%" == "jvm_options_parser_failed" (
  88. exit /b 1
  89. )
  90. if not "%ES_JAVA_OPTS%" == "" set ES_JAVA_OPTS=%ES_JAVA_OPTS: =;%
  91. if "%ES_JAVA_OPTS:~-1%"==";" set ES_JAVA_OPTS=%ES_JAVA_OPTS:~0,-1%
  92. echo %ES_JAVA_OPTS%
  93. @setlocal EnableDelayedExpansion
  94. for %%a in ("%ES_JAVA_OPTS:;=","%") do (
  95. set var=%%a
  96. if "!var:~1,4!" == "-Xms" (
  97. set XMS=!var:~5,-1!
  98. call:convertxm !XMS! JVM_MS
  99. )
  100. if "!var:~1,16!" == "-XX:MinHeapSize=" (
  101. set XMS=!var:~17,-1!
  102. call:convertxm !XMS! JVM_MS
  103. )
  104. if "!var:~1,4!" == "-Xmx" (
  105. set XMX=!var:~5,-1!
  106. call:convertxm !XMX! JVM_MX
  107. )
  108. if "!var:~1,16!" == "-XX:MaxHeapSize=" (
  109. set XMX=!var:~17,-1!
  110. call:convertxm !XMX! JVM_MX
  111. )
  112. if "!var:~1,4!" == "-Xss" (
  113. set XSS=!var:~5,-1!
  114. call:convertxk !XSS! JVM_SS
  115. )
  116. if "!var:~1,20!" == "-XX:ThreadStackSize=" (
  117. set XSS=!var:~21,-1!
  118. call:convertxk !XSS! JVM_SS
  119. )
  120. )
  121. @endlocal & set JVM_MS=%JVM_MS% & set JVM_MX=%JVM_MX% & set JVM_SS=%JVM_SS%
  122. if "%JVM_MS%" == "" (
  123. echo minimum heap size not set; configure using -Xms via "%ES_JVM_OPTIONS%" or ES_JAVA_OPTS
  124. goto:eof
  125. )
  126. if "%JVM_MX%" == "" (
  127. echo maximum heap size not set; configure using -Xmx via "%ES_JVM_OPTIONS%" or ES_JAVA_OPTS
  128. goto:eof
  129. )
  130. if "%JVM_SS%" == "" (
  131. echo thread stack size not set; configure using -Xss via "%ES_JVM_OPTIONS%" or ES_JAVA_OPTS
  132. goto:eof
  133. )
  134. set ES_PARAMS=-Delasticsearch;-Des.path.home="%ES_HOME%";-Des.path.conf="%ES_PATH_CONF%";-Des.distribution.flavor="%ES_DISTRIBUTION_FLAVOR%";-Des.distribution.type="%ES_DISTRIBUTION_TYPE%"
  135. if "%ES_START_TYPE%" == "" set ES_START_TYPE=manual
  136. if "%ES_STOP_TIMEOUT%" == "" set ES_STOP_TIMEOUT=0
  137. if "%SERVICE_DISPLAY_NAME%" == "" set SERVICE_DISPLAY_NAME=Elasticsearch %ES_VERSION% (%SERVICE_ID%)
  138. if "%SERVICE_DESCRIPTION%" == "" set SERVICE_DESCRIPTION=Elasticsearch %ES_VERSION% Windows Service - https://elastic.co
  139. if not "%SERVICE_USERNAME%" == "" (
  140. if not "%SERVICE_PASSWORD%" == "" (
  141. set SERVICE_PARAMS=%SERVICE_PARAMS% --ServiceUser "%SERVICE_USERNAME%" --ServicePassword "%SERVICE_PASSWORD%"
  142. )
  143. )
  144. "%EXECUTABLE%" //IS//%SERVICE_ID% --Startup %ES_START_TYPE% --StopTimeout %ES_STOP_TIMEOUT% --StartClass org.elasticsearch.bootstrap.Elasticsearch --StartMethod main ++StartParams --quiet --StopClass org.elasticsearch.bootstrap.Elasticsearch --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% ++Environment HOSTNAME="%%COMPUTERNAME%%"
  145. if not errorlevel 1 goto installed
  146. echo Failed installing '%SERVICE_ID%' service
  147. goto:eof
  148. :installed
  149. echo The service '%SERVICE_ID%' has been installed.
  150. goto:eof
  151. :err
  152. echo JAVA_HOME environment variable must be set!
  153. pause
  154. goto:eof
  155. rem ---
  156. rem Function for converting Xm[s|x] values into MB which Commons Daemon accepts
  157. rem ---
  158. :convertxm
  159. set value=%~1
  160. rem extract last char (unit)
  161. set unit=%value:~-1%
  162. rem assume the unit is specified
  163. set conv=%value:~0,-1%
  164. if "%unit%" == "k" goto kilo
  165. if "%unit%" == "K" goto kilo
  166. if "%unit%" == "m" goto mega
  167. if "%unit%" == "M" goto mega
  168. if "%unit%" == "g" goto giga
  169. if "%unit%" == "G" goto giga
  170. rem no unit found, must be bytes; consider the whole value
  171. set conv=%value%
  172. rem convert to KB
  173. set /a conv=%conv% / 1024
  174. :kilo
  175. rem convert to MB
  176. set /a conv=%conv% / 1024
  177. goto mega
  178. :giga
  179. rem convert to MB
  180. set /a conv=%conv% * 1024
  181. :mega
  182. set "%~2=%conv%"
  183. goto:eof
  184. :convertxk
  185. set value=%~1
  186. rem extract last char (unit)
  187. set unit=%value:~-1%
  188. rem assume the unit is specified
  189. set conv=%value:~0,-1%
  190. if "%unit%" == "k" goto kilo
  191. if "%unit%" == "K" goto kilo
  192. if "%unit%" == "m" goto mega
  193. if "%unit%" == "M" goto mega
  194. if "%unit%" == "g" goto giga
  195. if "%unit%" == "G" goto giga
  196. rem no unit found, must be bytes; consider the whole value
  197. set conv=%value%
  198. rem convert to KB
  199. set /a conv=%conv% / 1024
  200. goto kilo
  201. :mega
  202. rem convert to KB
  203. set /a conv=%conv% * 1024
  204. goto kilo
  205. :giga
  206. rem convert to KB
  207. set /a conv=%conv% * 1024 * 1024
  208. :kilo
  209. set "%~2=%conv%"
  210. goto:eof
  211. endlocal
  212. endlocal
  213. exit /b %ERRORLEVEL%