You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by km...@apache.org on 2014/02/05 17:57:09 UTC

git commit: add batch script

Updated Branches:
  refs/heads/master 566dbefea -> bfc23acde


add batch script


Project: http://git-wip-us.apache.org/repos/asf/incubator-knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-knox/commit/bfc23acd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-knox/tree/bfc23acd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-knox/diff/bfc23acd

Branch: refs/heads/master
Commit: bfc23acde6bae3ed1fc0e66487e96edcd27361c8
Parents: 566dbef
Author: YuraTolochkevich <st...@i.ua>
Authored: Wed Feb 5 18:27:47 2014 +0200
Committer: Kevin Minder <ke...@hortonworks.com>
Committed: Wed Feb 5 11:51:34 2014 -0500

----------------------------------------------------------------------
 gateway-release/home/bin/gateway.cmd | 230 ++++++++++++++++++++++++++++++
 1 file changed, 230 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/bfc23acd/gateway-release/home/bin/gateway.cmd
----------------------------------------------------------------------
diff --git a/gateway-release/home/bin/gateway.cmd b/gateway-release/home/bin/gateway.cmd
new file mode 100644
index 0000000..c787b9b
--- /dev/null
+++ b/gateway-release/home/bin/gateway.cmd
@@ -0,0 +1,230 @@
+@REM
+@REM Licensed to the Apache Software Foundation (ASF) under one or more
+@REM contributor license agreements. See the NOTICE file distributed with
+@REM this work for additional information regarding copyright ownership.
+@REM The ASF licenses this file to You under the Apache License, Version 2.0
+@REM (the "License"); you may not use this file except in compliance with
+@REM 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, software
+@REM distributed under the License is distributed on an "AS IS" BASIS,
+@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@REM See the License for the specific language governing permissions and
+@REM limitations under the License.
+@REM
+@ECHO OFF
+
+@REM Knox PID
+SET PID=0
+
+@REM  Start, stop, status, clean or setup
+SET KNOX_LAUNCH_COMMAND=%1
+
+@REM  User Name for setup parameter
+SET KNOX_LAUNCH_USER="%USERNAME%"
+
+@REM start/stop script location
+SET KNOX_SCRIPT_DIR=%~dp0
+
+SET KNOX_HOME=%KNOX_SCRIPT_DIR:~0,-5%
+
+@REM App name
+SET KNOX_NAME=knox
+
+@REM The Knox's jar name
+SET KNOX_JAR=%KNOX_SCRIPT_DIR%gateway.jar
+
+@REM Name of PID file
+SET PID_DIR=%KNOX_HOME%\pids
+SEt PID_FILE=%PID_DIR%\.pid
+
+@REM Name of LOG/OUT/ERR file
+SET LOG_DIR=%KNOX_HOME%\logs
+SET OUT_FILE=%LOG_DIR%\.out
+SET ERR_FILE=%LOG_DIR%\.err
+
+:main 
+	IF "%1" =="start" (
+		CALL :knoxStart
+		GOTO :EOF
+	)
+
+	IF "%1"=="stop" (
+		CALL :knoxStop
+		GOTO :EOF
+	)	
+
+	IF "%1"=="status" (
+		CALL :knoxStatus
+	GOTO :EOF
+	)	
+
+	IF "%1"=="clean" (
+		CALL :knoxClean
+		GOTO :EOF
+	)
+	   
+	IF "%1"=="setup" (
+		CALL :setupEnv %KNOX_LAUNCH_USER%
+		GOTO :EOF	
+	)
+	IF "%1" =="help" (
+		CALL :printHelp
+		GOTO :EOF
+	)
+	ECHO "Usage: $0 {start|stop|status|clean|setup [USER_NAME]}\n"
+	goto :EOF
+
+:knoxStart 
+	call :createLogFiles
+	call :getPID
+	IF %ERRORLEVEL%==0  (
+		ECHO "Knox is already running with PID=%PID%.\n"
+		GOTO :EOF
+	) 
+	ECHO "Starting Knox "
+	DEL "%PID_FILE%"
+	start "KnoxGateway"  java  -jar "%KNOX_JAR%">> "%OUT_FILE%" 2>>"%ERR_FILE%"
+	echo "getting pid"
+	for /f "tokens=2 delims=," %%A in ('tasklist -v /fo csv /nh /fi "WINDOWTITLE  eq KnoxGateway"') do (
+	echo %%A>"%PID_FILE%"
+	)
+	CALL :getPID
+	CALL :knoxIsRunning %PID%
+	IF  %ERRORLEVEL%==0 (
+		ECHO "failed"
+		Exit /B 1
+	)
+	ECHO "succeeded with PID %PID%
+	Exit /B 0
+   
+@REM Removed the Knox PID file if Knox is not run
+:knoxClean 
+	CALL :getPID
+	CALL :knoxIsRunning %PID%
+	IF  %ERRORLEVEL%==0 (
+		CALL :deleteLogFiles
+		GOTO :EOF
+	) 
+	ECHO "Can't clean files. Knox is running with PID=%PID%"
+	Exit /B 1
+   
+:createLogFiles 
+	dir "%LOG_DIR%" >NUL 2>NUL
+	IF not %errorlevel% ==0 (  
+		ECHO "Can't find log dir" 
+	Exit /B %1
+	) 
+	dir "%OUT_FILE%" >NUL 2>NUL
+		IF not %errorlevel% ==0 (  
+		ECHO. 2>"%OUT_FILE%"
+	)
+	dir "%ERR_FILE%" >NUL 2>NUL
+	IF not %errorlevel% ==0 (  
+		ECHO. 2>"%ERR_FILE%"
+	)
+	Exit /B 0
+
+:getPID 
+	dir "%PID_DIR%" >NUL 2>NUL
+	IF NOT %ERRORLEVEL% ==0 (
+		ECHO "Can't find pid dir. "
+		Exit /B 1
+	)
+	dir  "%PID_FILE%" >NUL 2>NUL
+	IF NOT %ERRORLEVEL% ==0 (
+		SET PID=0
+		Exit /B 1
+	)	
+	SET /p PID=<"%PID_FILE%"
+	Exit /B 0
+
+:knoxIsRunning 
+	IF %1==0 (
+		Exit /B 0
+	)
+	tasklist /FI "PID eq %1" |find ":" > nul
+	IF  %ERRORLEVEL%==0 (
+		Exit /B 0
+	)
+	Exit /B 1
+
+:setDirPermission 
+	SET dirName=%1
+	SET uName=%2
+	dir "%dirName%" >NUL 2>NUL
+	IF NOT %ERRORLEVEL% ==0 ( 
+		ECHO "making dir"
+		mkdir  "%dirName%" 
+	)
+	IF NOT %ERRORLEVEL% ==0 (
+		ECHO "Can't access or create \"$dirName\" folder. Run sudo $0 setup."
+		Exit /B %1
+	)	
+	echo %dirName%
+	GOTO :EOF
+
+:knoxStop {
+	echo pid %PID%
+	call   :getPID
+	call :knoxIsRunning %PID%
+	IF  %ERRORLEVEL% ==0 (
+		echo "Knox is not running."
+		GOTO :EOF
+	)
+	ECHO "Stopping Knox %PID% "
+	taskkill /PID %PID%
+	IF NOT %ERRORLEVEL% ==0 (
+		ECHO  "failed. \n"
+		Exit /B 1
+	)
+	DEL /F "%PID_FILE%"
+	echo "succeeded.\n"
+	GOTO :EOF
+
+:knoxStatus {
+	CALL :getPID
+	IF not %ERRORLEVEL% ==0 (
+		echo "Knox is not running. No pid file found.\n"
+		GOTO :EOF
+	) 
+	CALL :knoxIsRunning %PID%
+	IF %ERRORLEVEL% ==1 (
+		echo "knox is running with PID=%PID%.\n"
+		Exit /B 1
+	)
+	ECHO "is not running.\n"
+	GOTO :EOF
+
+:deleteLogFiles 
+	DEL /F /Q "%PID_FILE%" 
+	ECHO "Removed the Knox PID file: %PID_FILE%"
+	DEL /F /Q "%OUT_FILE%"
+	ECHO "Removed the Knox OUT file: %OUT_FILE%"
+	DEL /F  /Q "%ERR_FILE%"
+	ECHO "Removed the Knox ERR file: %ERR_FILE%"
+	GOTO :EOF
+
+:setupEnv 
+	SET uName=%1
+	IF [%uName%]==[""] (
+		uName="%USERNAME%" 
+	)  	
+	echo %uName%
+	CALL  :setDirPermission "%PID_DIR%\" %uName%
+	CALL  :setDirPermission "%LOG_DIR%\" %uName%
+	java -DGATEWAY_HOME="%KNOX_HOME%" -jar "%KNOX_JAR%" -persist-master -nostart
+	GOTO :EOF
+
+:printHelp 
+	java -jar %KNOX_JAR% -help
+	GOTO :EOF
+	
+
+
+
+ 
+
+