我在服务器上设置了Solr并作为服务运行,一切都运行得很好,直到我尝试停止服务,它才挂起。我试图修正这些论点,并花了很长时间试图看看是否有人也有同样的问题。不幸的是,我的谷歌功能失败了。
使用Commons Daemon Service Runner根据以下内容设置服务。
@echo off
set JAVA_HOME=D:applicationJava
set SERVICE_NAME=SolrService
set SERVICE_HOME=D:applicationSolr
set PR_INSTALL=%SERVICE_HOME%serverSolrService.exe
@REM Service Log Configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=%SERVICE_HOME%logs
set PR_STDOUTPUT=auto
set PR_STDERROR=auto
set PR_LOGLEVEL=Debug
set PR_STARTUP=auto
set PR_STARTMODE=exe
set PR_STARTIMAGE=%SERVICE_HOME%binsolr.cmd
set PR_STARTPARAMS=start
@REM Shutdown Configuration
set PR_STOPMODE=exe
set PR_STOPIMAGE=%SERVICE_HOME%binsolr.cmd
set DSTOP.PORT=8983
set PR_STOPPARAMS="stop -p 8983 -k solrrocks"
%PR_INSTALL% //IS/%SERVICE_NAME% ^
--Description="Solr-5.2.1 Search Tool for Application" ^
--DisplayName="%SERVICE_NAME%" ^
--Install="%PR_INSTALL%" ^
--Startup="%PR_STARTUP%" ^
--LogPath="%PR_LOGPATH%" ^
--LogPrefix="%PR_LOGPREFIX%" ^
--LogLevel="%PR_LOGLEVEL%" ^
--StdOutput="%PR_STDOUTPUT%" ^
--StdError="%PR_STDERROR%" ^
--StartMode="%PR_STARTMODE%" ^
--StartImage="%PR_STARTIMAGE%" ^
--StartParams="%PR_STARTPARAMS%" ^
--StopMode="%PR_STOPMODE%" ^
--StopImage="%PR_STOPIMAGE%" ^
--StopParams="%PR_STOPPARAMS%"
if not errorlevel 1 goto installed
echo Failed to install "%SERVICE_NAME%" service. Refer to log in %PR_LOGPATH%
exit /B 1
:installed
echo The Service "%SERVICE_NAME%" has been installed
exit /B 0
使用NSSM解决问题并管理windows服务https://nssm.cc/
制作了一个包含以下信息的批处理文件(从与NSSM.exe相同的位置运行)
nssm安装D:\Search\bin\solr.cmd
nssm设置AppDirectory D:\search\bin
nssm set AppParameters"start-f-p 8983
nssm集合描述"Solr Search Engine Windows Service"
这将创建一个应该正确启动和停止的windows服务