blob: 2bade435a5571174a3d4cc9fae058459d4938fbc [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
### BEGIN INIT INFO
# Provides: ranger-kms
# Required-Start: $local_fs $remote_fs $network $named $syslog $time
# Required-Stop: $local_fs $remote_fs $network $named $syslog $time
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Start/Stop Ranger kms
### END INIT INFO
#LINUX_USER=kms
BIN_PATH=/usr/bin
MOD_NAME=ranger-kms
realScriptPath=`readlink -f $0`
realScriptDir=`dirname $realScriptPath`
RANGER_KMS_DIR=`(cd $realScriptDir; pwd)`
for custom_env_script in `find ${RANGER_KMS_DIR}/ews/webapp/WEB-INF/classes/conf/ -name "ranger-kms-env*"`; do
if [ -f $custom_env_script ]; then
. $custom_env_script
fi
done
if [ -z "${RANGER_KMS_PID_NAME}" ]
then
RANGER_KMS_PID_NAME=rangerkms.pid
fi
if [ -z "${RANGER_KMS_PID_DIR_PATH}" ]
then
RANGER_KMS_PID_DIR_PATH=/var/run/ranger_kms
fi
# User can set their own pid path using RANGER_KMS_PID_DIR_PATH and
# RANGER_KMS_PID_NAME variable before calling the script. The user can modify
# the value of the RANGER_KMS_PID_DIR_PATH in ranger-kms-env-piddir.sh to
# change pid path and set the value of RANGER_KMS_PID_NAME to change the
# pid file.
pidf=${RANGER_KMS_PID_DIR_PATH}/${RANGER_KMS_PID_NAME}
if [ -f $pidf ]; then
pid=`cat $pidf`
else
pid=`ps -ef | grep java | grep -- '-Dproc_rangerkms' | grep -v grep | awk '{ print $2 }'`
fi
case $1 in
start)
if [ "${pid}" != "" ]
then
echo "Ranger KMS Service is already running"
exit 1
else
echo "Starting Apache Ranger KMS."
/bin/su --login $LINUX_USER -c "${BIN_PATH}/${MOD_NAME} start"
fi
;;
stop)
if [ "${pid}" != "" ]
then
echo "Stopping Apache Ranger KMS."
/bin/su --login $LINUX_USER -c "${BIN_PATH}/${MOD_NAME} stop"
else
echo "Ranger KMS Service is NOT running"
exit 1
fi
;;
restart)
if [ "${pid}" != "" ]
then
echo "Stopping Apache Ranger KMS."
/bin/su --login $LINUX_USER -c "${BIN_PATH}/${MOD_NAME} stop"
sleep 10
fi
echo "Starting Apache Ranger KMS."
/bin/su --login $LINUX_USER -c "${BIN_PATH}/${MOD_NAME} start"
;;
status)
if [ "${pid}" != "" ]
then
echo "Ranger KMS Service is running [pid={$pid}]"
else
echo "Ranger KMS Service is NOT running."
fi
;;
*)
echo "Invalid argument [$1]; Only start|stop|restart|status are supported."
exit 1
esac