@echo off | |
REM Licensed to the Apache Software Foundation (ASF) under one | |
REM or more contributor license agreements. See the NOTICE file | |
REM distributed with this work for additional information | |
REM regarding copyright ownership. The ASF licenses this file | |
REM to you under the Apache License, Version 2.0 (the | |
REM "License"); you may not use this file except in compliance | |
REM with the License. You may obtain a copy of the License at | |
REM | |
REM http://www.apache.org/licenses/LICENSE-2.0 | |
REM | |
REM Unless required by applicable law or agreed to in writing, | |
REM software distributed under the License is distributed on an | |
REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
REM KIND, either express or implied. See the License for the | |
REM specific language governing permissions and limitations | |
REM under the License. | |
if "%OS%" == "Windows_NT" setlocal | |
rem --------------------------------------------------------------------------- | |
rem NT Service Install/Uninstall script | |
rem | |
rem Options | |
rem install Install the service using ftpd as service name. | |
rem Service is installed using default settings. | |
rem remove Remove the service from the System. | |
rem | |
rem name (optional) If the second argument is present it is considered | |
rem to be new service name | |
rem | |
rem $Id: service.bat 467182 2006-10-23 23:47:06Z markt $ | |
rem --------------------------------------------------------------------------- | |
rem Guess CATALINA_HOME if not defined | |
set CURRENT_DIR=%cd% | |
if not "%FTPD_HOME%" == "" goto gotHome | |
set FTPD_HOME=%cd% | |
if exist "%FTPD_HOME%\bin\ftpd.exe" goto okHome | |
rem CD to the upper dir | |
cd .. | |
set FTPD_HOME=%cd% | |
:gotHome | |
if exist "%FTPD_HOME%\bin\ftpd.exe" goto okHome | |
echo The ftpd.exe was not found... | |
echo The FTPD_HOME environment variable is not defined correctly. | |
echo This environment variable is needed to run this program | |
goto end | |
rem Make sure prerequisite environment variables are set | |
if not "%JAVA_HOME%" == "" goto okHome | |
echo The JAVA_HOME environment variable is not defined | |
echo This environment variable is needed to run this program | |
goto end | |
:okHome | |
set EXECUTABLE=%FTPD_HOME%\bin\ftpd.exe | |
rem Set default Service name | |
set SERVICE_NAME=ftpd | |
set PR_DISPLAYNAME=Apache FtpServer | |
if "%1" == "" goto displayUsage | |
if "%2" == "" goto setServiceName | |
set SERVICE_NAME=%2 | |
set PR_DISPLAYNAME=Apache FtpServer %2 | |
:setServiceName | |
if %1 == install goto doInstall | |
if %1 == remove goto doRemove | |
if %1 == uninstall goto doRemove | |
echo Unknown parameter "%1" | |
:displayUsage | |
echo. | |
echo Usage: service.bat install/remove [service_name] | |
goto end | |
:doRemove | |
rem Remove the service | |
"%EXECUTABLE%" //DS//%SERVICE_NAME% | |
echo The service '%SERVICE_NAME%' has been removed | |
goto end | |
:doInstall | |
rem Install the service | |
echo Installing the service '%SERVICE_NAME%' ... | |
echo Using FTPD_HOME: %FTPD_HOME% | |
echo Using JAVA_HOME: %JAVA_HOME% | |
rem ----- Create CLASSPATH -------------------------------------------- | |
set FTPD_CLASSPATH=%FTPD_HOME%\common\classes | |
cd /d "%FTPD_HOME%\common\lib" | |
for %%i in ("*.jar") do call "%FTPD_HOME%\bin\appendcp.bat" "%FTPD_HOME%\common\lib\%%i" | |
cd /d %FTPD_HOME% | |
rem Use the environment variables as an example | |
rem Each command line option is prefixed with PR_ | |
set FTPD_LOGPATH=%FTPD_HOME%\res\log | |
set PR_DESCRIPTION=Apache FtpServer (http://mina.apache.org/ftpserver/) | |
set PR_INSTALL=%EXECUTABLE% | |
set PR_LOGPATH=%FTPD_LOGPATH% | |
set PR_CLASSPATH=%FTPD_CLASSPATH% | |
rem Set the server jvm from JAVA_HOME | |
set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll | |
if exist "%PR_JVM%" goto foundJvm | |
rem Set the client jvm from JAVA_HOME | |
set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll | |
if exist "%PR_JVM%" goto foundJvm | |
set PR_JVM=auto | |
:foundJvm | |
echo Using JVM: %PR_JVM% | |
rem Supply additional command line params as start params | |
set CMD_LINE_ARGS=start | |
echo %CMD_LINE_ARGS% | |
shift | |
shift | |
:buildArgs | |
if %1a==a goto endInit | |
set CMD_LINE_ARGS=%CMD_LINE_ARGS%;%1 | |
echo %CMD_LINE_ARGS% | |
shift | |
goto buildArgs | |
:endInit | |
echo %CMD_LINE_ARGS% | |
"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.ftpserver.main.Daemon --StartParams %CMD_LINE_ARGS% --StartPath "%FTPD_HOME%" --StopClass org.apache.ftpserver.main.Daemon --StopParams stop | |
if not errorlevel 1 goto installed | |
echo Failed installing '%SERVICE_NAME%' service | |
goto end | |
:installed | |
rem Clear the environment variables. They are not needed any more. | |
set PR_DISPLAYNAME= | |
set PR_DESCRIPTION= | |
set PR_INSTALL= | |
set PR_LOGPATH= | |
set PR_CLASSPATH= | |
set PR_JVM= | |
rem Set extra parameters | |
"%EXECUTABLE%" //US//%SERVICE_NAME% --StartMode jvm --StopMode jvm --StdOutput "%FTPD_LOGPATH%\out.log" --StdError "%FTPD_LOGPATH%\error.log" | |
rem More extra parameters | |
set PR_LOGPATH=%FTPD_HOME%\logs | |
set PR_STDOUTPUT=auto | |
set PR_STDERROR=auto | |
REM "%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 128 --JvmMx 256 | |
echo The service '%SERVICE_NAME%' has been installed. | |
:end | |
cd %CURRENT_DIR% |