procrun を使用して、アプリケーション (ファット jar 内) を Windows 上のサービスとして実行しようとしています。具体的には、私の開発システムは Server 2012 です。見たすべての例のようにバッチ ファイルを作成しましたが、それを実行しようとすると (または単に prunsrv.exe を単独で実行しても)、次のエラーが発生します。
c:\Users\kmilner\Desktop>c:\seven10\procrun\amd64\prunsrv
[2015-12-22 14:42:47] [warn] [ 3132] The system cannot find the Registry key for service 'prunsrv'
[2015-12-22 14:42:47] [error] [ 3132] Load configuration failed
[2015-12-22 14:42:47] [error] [ 3132] The system cannot find the file specified.
[2015-12-22 14:42:47] [error] [ 3132] Commons Daemon procrun failed with exit value: 2 (Failed to load configuration)
[2015-12-22 14:42:47] [error] [ 3132] The system cannot find the file specified.
サービス名を実行可能ファイルの名前に割り当てている理由がわかりません。これが私が作成したバッチ ファイルですが、パラメーターを指定せずに prunsrv.exe を実行しただけでも、同じ応答が得られます。
@cls
@if not "%1" == "" (
@set PROCRUN_CMD=%1
) else (
@set PROCRUN_CMD=TS
)
set APP_HOME=c:\myapp
set AGENT_HOME=%APP_HOME%\agent
set PROCRUN_EXEC=%APP_HOME%\procrun\amd64\prunsrv.exe
set AGENT_SERVICE_NAME=My-Agent
set SERVICE_LOG_PATH=%AGENT_HOME%\logs\windows
%PROCRUN_EXEC% %PROCRUN_CMD% %AGENT_SERVICE_NAME% ^
--Install="%PROCRUN_EXEC%" ^
--Description="My Service" ^
--Classpath="%AGENT_HOME%\MyApp.jar" ^
--StartClass=org.MyOrg.MyApp ^
++startParams="-s;%AGENT_HOME%\conf\settings.json" ^
--StartMode="java" ^
--Startup="auto" ^
--StopClass=java.lang.System ^
--StopMethod=exit ^
--StopMode=jvm ^
--logPath="%SERVICE_LOG_PATH%" ^
--StdOutput="%SERVICE_LOG_PATH%\service-stdout.txt" ^
--StdError="%SERVICE_LOG_PATH%\service-stderr.txt" ^
--LogLevel="Debug"
@echo.
では、この問題を引き起こしているここで何が欠けているのでしょうか? 他に答えは見つかりません。