1

我在我的服务器上设置了 Solr 并作为服务运行,一切运行良好,直到我尝试停止服务,它只是挂起。我曾尝试修改这些论点,并一直在尝试查看是否有人遇到同样的问题。不幸的是,我的 google fu 让我失望了。

使用 Commons Daemon Service Runner 按以下方式设置服务。

@echo off

set JAVA_HOME=D:\application\Java
set SERVICE_NAME=SolrService
set SERVICE_HOME=D:\application\Solr
set PR_INSTALL=%SERVICE_HOME%\server\SolrService.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%\bin\solr.cmd
set PR_STARTPARAMS=start

@REM Shutdown Configuration
set PR_STOPMODE=exe
set PR_STOPIMAGE=%SERVICE_HOME%\bin\solr.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
4

1 回答 1

1

使用 NSSM 解决问题并管理 windows 服务 https://nssm.cc/

制作了一个包含以下信息的批处理文件(从与您的 NSSM.exe 相同的位置运行)

nssm 安装 D:\Search\bin\solr.cmd

nssm 设置 AppDirectory D:\search\bin

nssm 设置 AppParameters "开始 -f -p 8983

nssm 设置描述“Solr 搜索引擎 Windows 服务”

这将创建一个应该正确启动和停止的 Windows 服务

于 2018-12-06T14:16:44.583 回答