You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ga...@apache.org on 2016/11/11 06:52:34 UTC

incubator-ranger git commit: RANGER-1192 : Ranger PID file not being read if a custom location is provided

Repository: incubator-ranger
Updated Branches:
  refs/heads/master bf343a0dd -> d61ef2a04


RANGER-1192 : Ranger PID file not being read if a custom location is provided

Signed-off-by: Gautam Borad <ga...@apache.org>


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

Branch: refs/heads/master
Commit: d61ef2a0438fd69a9595ddd192bf1b9a01c121d1
Parents: bf343a0
Author: Mehul Parikh <me...@freestoneinfotech.com>
Authored: Tue Oct 25 15:59:16 2016 +0530
Committer: Gautam Borad <ga...@apache.org>
Committed: Fri Nov 11 12:12:50 2016 +0530

----------------------------------------------------------------------
 .../scripts/ranger-admin-services.sh            | 14 ++++++++++--
 kms/scripts/install.properties                  |  2 ++
 kms/scripts/ranger-kms                          | 14 ++++++++++--
 kms/scripts/setup.sh                            | 12 ++++++++++
 security-admin/scripts/install.properties       |  3 +++
 security-admin/scripts/setup.sh                 | 14 +++++++++++-
 tagsync/scripts/install.properties              |  3 +++
 tagsync/scripts/ranger-tagsync-services.sh      | 20 +++++++++++------
 tagsync/scripts/setup.py                        | 22 ++++++++++++++-----
 unixauthservice/scripts/install.properties      |  3 +++
 .../scripts/ranger-usersync-services.sh         | 23 +++++++++++---------
 unixauthservice/scripts/setup.py                | 22 ++++++++++++++-----
 12 files changed, 119 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/embeddedwebserver/scripts/ranger-admin-services.sh
----------------------------------------------------------------------
diff --git a/embeddedwebserver/scripts/ranger-admin-services.sh b/embeddedwebserver/scripts/ranger-admin-services.sh
index f672236..515e010 100755
--- a/embeddedwebserver/scripts/ranger-admin-services.sh
+++ b/embeddedwebserver/scripts/ranger-admin-services.sh
@@ -29,7 +29,6 @@ XAPOLICYMGR_DIR=`(cd $realScriptDir/..; pwd)`
 XAPOLICYMGR_EWS_DIR=${XAPOLICYMGR_DIR}/ews
 RANGER_JAAS_LIB_DIR="${XAPOLICYMGR_EWS_DIR}/ranger_jaas"
 RANGER_JAAS_CONF_DIR="${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/classes/conf/ranger_jaas"
-pidf=/var/run/ranger/rangeradmin.pid
 JAVA_OPTS=" ${JAVA_OPTS} -XX:MaxPermSize=256m -Xmx1024m -Xms1024m "
 
 if [ -f ${XAPOLICYMGR_DIR}/ews/webapp/WEB-INF/classes/conf/java_home.sh ]; then
@@ -52,6 +51,17 @@ then
 	RANGER_ADMIN_LOG_DIR=${XAPOLICYMGR_EWS_DIR}/logs
 fi
 
+if [ -z "${RANGER_PID_DIR_PATH}" ]
+then
+        RANGER_PID_DIR_PATH=/var/run/ranger
+fi
+pidf=${RANGER_PID_DIR_PATH}/rangeradmin.pid
+
+if [ -z "${RANGER_USER}" ]
+then
+        RANGER_USER=ranger
+fi
+
 start() {
 	SLEEP_TIME_AFTER_START=5
 	nohup  java -Dproc_rangeradmin ${JAVA_OPTS} -Dlogdir=${RANGER_ADMIN_LOG_DIR} -Dcatalina.base=${XAPOLICYMGR_EWS_DIR} -cp "${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/classes/conf:${XAPOLICYMGR_EWS_DIR}/lib/*:${RANGER_JAAS_LIB_DIR}/*:${RANGER_JAAS_CONF_DIR}:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH" org.apache.ranger.server.tomcat.EmbeddedServer > ${RANGER_ADMIN_LOG_DIR}/catalina.out 2>&1 &
@@ -61,7 +71,7 @@ start() {
 	if ps -p $VALUE_OF_PID > /dev/null
 	then
 		echo $VALUE_OF_PID > ${pidf}
-		chown ranger ${pidf}
+                chown ${RANGER_USER} ${pidf}
 		chmod 660 ${pidf}
 		pid=`cat $pidf`
 		echo "Apache Ranger Admin Service with pid ${pid} has started."

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/kms/scripts/install.properties
----------------------------------------------------------------------
diff --git a/kms/scripts/install.properties b/kms/scripts/install.properties
index 0516269..d07dc2c 100755
--- a/kms/scripts/install.properties
+++ b/kms/scripts/install.properties
@@ -203,6 +203,8 @@ SSL_TRUSTSTORE_PASSWORD=changeit
 # Custom log directory path
 RANGER_KMS_LOG_DIR=$PWD
 
+#PID file path
+RANGER_KMS_PID_DIR_PATH=/var/run/ranger_kms
 # #################  DO NOT MODIFY ANY VARIABLES BELOW #########################
 #
 # --- These deployment variables are not to be modified unless you understand the full impact of the changes

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/kms/scripts/ranger-kms
----------------------------------------------------------------------
diff --git a/kms/scripts/ranger-kms b/kms/scripts/ranger-kms
index d2937aa..80181d7 100755
--- a/kms/scripts/ranger-kms
+++ b/kms/scripts/ranger-kms
@@ -53,6 +53,16 @@ then
         RANGER_KMS_LOG_DIR=${RANGER_KMS_EWS_DIR}/logs
 fi
 
+if [ -z "${RANGER_KMS_PID_DIR_PATH}" ]
+then
+        RANGER_KMS_PID_DIR_PATH=/var/run/ranger_kms
+fi
+pidf=${RANGER_KMS_PID_DIR_PATH}/rangerkms.pid
+
+if [ -z "${KMS_USER}" ]
+then
+        KMS_USER=kms
+fi
 
 PROC_NAME=proc_rangerkms
 export PROC_NAME
@@ -75,7 +85,7 @@ then
 fi
 
 KMS_CONF_DIR=${RANGER_KMS_EWS_DIR}/webapp/WEB-INF/classes/conf
-pidf="/var/run/ranger_kms/rangerkms.pid"
+
 JAVA_OPTS="${JAVA_OPTS} -Dcatalina.base=${RANGER_KMS_EWS_DIR} -Dkms.config.dir=${KMS_CONF_DIR} -Dkms.log.dir=${TOMCAT_LOG_DIR} -cp ${RANGER_KMS_EWS_CONF_DIR}:${RANGER_KMS_EWS_LIB_DIR}/*:${RANGER_KMS_EWS_DIR}/webapp/lib/*:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH "
 createRangerKMSPid () {
 	SLEEP_TIME_AFTER_START=5
@@ -86,7 +96,7 @@ createRangerKMSPid () {
 	if ps -p $VALUE_OF_PID > /dev/null
 	then
 		echo $VALUE_OF_PID > ${pidf}
-		chown ranger ${pidf}
+                chown ${KMS_USER} ${pidf}
 		chmod 660 ${pidf}
 		pid=`cat $pidf`
 		echo "Apache Ranger KMS Service with pid ${pid} has started."

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/kms/scripts/setup.sh
----------------------------------------------------------------------
diff --git a/kms/scripts/setup.sh b/kms/scripts/setup.sh
index 4f2e320..568350b 100755
--- a/kms/scripts/setup.sh
+++ b/kms/scripts/setup.sh
@@ -88,6 +88,7 @@ sqlanywhere_core_file=$(get_prop 'sqlanywhere_core_file' $PROPFILE)
 cred_keystore_filename=$(eval echo "$(get_prop 'cred_keystore_filename' $PROPFILE)")
 KMS_BLACKLIST_DECRYPT_EEK=$(get_prop 'KMS_BLACKLIST_DECRYPT_EEK' $PROPFILE)
 RANGER_KMS_LOG_DIR=$(eval echo "$(get_prop 'RANGER_KMS_LOG_DIR' $PROPFILE)")
+RANGER_KMS_PID_DIR_PATH=$(eval echo "$(get_prop 'RANGER_KMS_PID_DIR_PATH' $PROPFILE)")
 HSM_TYPE=$(get_prop 'HSM_TYPE' $PROPFILE)
 HSM_ENABLED=$(get_prop 'HSM_ENABLED' $PROPFILE)
 HSM_PARTITION_NAME=$(get_prop 'HSM_PARTITION_NAME' $PROPFILE)
@@ -765,6 +766,17 @@ setup_install_files(){
         echo "export RANGER_KMS_LOG_DIR=${RANGER_KMS_LOG_DIR}" > ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-kms-env-logdir.sh
     	chmod a+rx ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-kms-env-logdir.sh
 
+        if [ ! -d ${RANGER_KMS_PID_DIR_PATH} ]; then
+                log "[I] Creating KMS PID folder: ${RANGER_KMS_PID_DIR_PATH}"
+                mkdir -p ${RANGER_KMS_PID_DIR_PATH}
+        fi
+        if [ -d ${RANGER_KMS_PID_DIR_PATH} ]; then
+                chown -R ${unix_user} ${RANGER_KMS_PID_DIR_PATH}
+        fi
+        echo "export RANGER_KMS_PID_DIR_PATH=${RANGER_KMS_PID_DIR_PATH}" > ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-kms-env-piddir.sh
+        echo "export KMS_USER=${unix_user}" >> ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-kms-env-piddir.sh
+        chmod a+rx ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-kms-env-piddir.sh
+
 	log "[I] Setting up installation files and directory DONE";
 
 	if [ ! -f ${INSTALL_DIR}/rpm ]; then

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/security-admin/scripts/install.properties
----------------------------------------------------------------------
diff --git a/security-admin/scripts/install.properties b/security-admin/scripts/install.properties
index 46a0091..693129f 100644
--- a/security-admin/scripts/install.properties
+++ b/security-admin/scripts/install.properties
@@ -187,6 +187,9 @@ sso_publickey=
 # Custom log directory path
 RANGER_ADMIN_LOG_DIR=$PWD
 
+# PID file path
+RANGER_PID_DIR_PATH=/var/run/ranger
+
 # #################  DO NOT MODIFY ANY VARIABLES BELOW #########################
 #
 # --- These deployment variables are not to be modified unless you understand the full impact of the changes

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/security-admin/scripts/setup.sh
----------------------------------------------------------------------
diff --git a/security-admin/scripts/setup.sh b/security-admin/scripts/setup.sh
index 059fc21..2ec26f7 100755
--- a/security-admin/scripts/setup.sh
+++ b/security-admin/scripts/setup.sh
@@ -20,9 +20,9 @@
 # This script will install policymanager webapplication under tomcat and also, initialize the database with ranger users/tables.
 
 PROPFILE=$PWD/install.properties
-propertyValue=''
 pidFolderName='/var/run/ranger'
 mkdir -p ${pidFolderName}
+propertyValue=''
 if [ ! $? = "0" ];then
 	log "$PROPFILE file not found....!!";
 	exit 1;
@@ -116,6 +116,7 @@ sso_enabled=$(get_prop 'sso_enabled' $PROPFILE)
 sso_providerurl=$(get_prop 'sso_providerurl' $PROPFILE)
 sso_publickey=$(get_prop 'sso_publickey' $PROPFILE)
 RANGER_ADMIN_LOG_DIR=$(eval echo "$(get_prop 'RANGER_ADMIN_LOG_DIR' $PROPFILE)")
+RANGER_PID_DIR_PATH=$(eval echo "$(get_prop 'RANGER_PID_DIR_PATH' $PROPFILE)")
 
 spnego_principal=$(get_prop 'spnego_principal' $PROPFILE)
 spnego_keytab=$(get_prop 'spnego_keytab' $PROPFILE)
@@ -1132,6 +1133,17 @@ setup_install_files(){
         echo "export RANGER_ADMIN_LOG_DIR=${RANGER_ADMIN_LOG_DIR}" > ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-logdir.sh
         chmod a+rx ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-logdir.sh
 
+        if [ ! -d ${RANGER_PID_DIR_PATH} ]; then
+                log "[I]Creating Ranger PID folder: ${RANGER_PID_DIR_PATH}"
+                mkdir -p ${RANGER_PID_DIR_PATH}
+        fi
+        if [ -d ${RANGER_PID_DIR_PATH} ]; then
+                chown -R ${unix_user} ${RANGER_PID_DIR_PATH}
+        fi
+        echo "export RANGER_PID_DIR_PATH=${RANGER_PID_DIR_PATH}" > ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-piddir.sh
+        echo "export RANGER_USER=${unix_user}" >> ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-piddir.sh
+        chmod a+rx ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-piddir.sh
+
 	log "[I] Setting up installation files and directory DONE";
 
 	if [ ! -f ${INSTALL_DIR}/rpm ]; then

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/tagsync/scripts/install.properties
----------------------------------------------------------------------
diff --git a/tagsync/scripts/install.properties b/tagsync/scripts/install.properties
index 2b40a17..a2c410a 100644
--- a/tagsync/scripts/install.properties
+++ b/tagsync/scripts/install.properties
@@ -95,6 +95,9 @@ unix_group=ranger
 # Logs are stored in logdir
 logdir = log
 
+#PID file path
+TAGSYNC_PID_DIR_PATH=/var/run/ranger
+
 #Set to run in kerberos environment
 is_secure = false
 tagsync_principal=

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/tagsync/scripts/ranger-tagsync-services.sh
----------------------------------------------------------------------
diff --git a/tagsync/scripts/ranger-tagsync-services.sh b/tagsync/scripts/ranger-tagsync-services.sh
index e81a6b2..7f86e2f 100755
--- a/tagsync/scripts/ranger-tagsync-services.sh
+++ b/tagsync/scripts/ranger-tagsync-services.sh
@@ -27,13 +27,19 @@ realScriptDir=`dirname $realScriptPath`
 cd $realScriptDir
 cdir=`pwd`
 
-pidd=/var/run/ranger
-
-if [ -d $pidd ]; then
-	mkdir -p $pidd
+for custom_env_script in `find ${cdir}/conf/ -name "ranger-tagsync-env*"`; do
+        if [ -f $custom_env_script ]; then
+                . $custom_env_script
+        fi
+done
+
+if [ -z "${TAGSYNC_PID_DIR_PATH}" ]; then
+        pidf=/var/run/ranger
+fi
+pidf=${TAGSYNC_PID_DIR_PATH}/tagsync.pid
+if [ -z "${UNIX_TAGSYNC_USER}" ]; then
+        UNIX_TAGSYNC_USER=ranger
 fi
-
-pidf=${pidd}/tagsync.pid
 
 if [ "${action}" == "START" ]; then
 
@@ -82,7 +88,7 @@ if [ "${action}" == "START" ]; then
 	if ps -p $VALUE_OF_PID > /dev/null
 	then
 		echo $VALUE_OF_PID > ${pidf}
-		chown ranger ${pidf}
+                chown ${UNIX_TAGSYNC_USER} ${pidf}
 		chmod 660 ${pidf}
 		pid=`cat $pidf`
 		echo "Apache Ranger Tagsync Service with pid ${pid} has started."

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/tagsync/scripts/setup.py
----------------------------------------------------------------------
diff --git a/tagsync/scripts/setup.py b/tagsync/scripts/setup.py
index ea47de7..e6150a7 100755
--- a/tagsync/scripts/setup.py
+++ b/tagsync/scripts/setup.py
@@ -34,7 +34,6 @@ if (not 'JAVA_HOME' in os.environ):
 debugLevel = 1
 generateXML = 0
 installPropDirName = '.'
-pidFolderName = '/var/run/ranger'
 logFolderName = '/var/log/ranger'
 initdDirName = '/etc/init.d'
 
@@ -92,6 +91,8 @@ TAG_SOURCE_FILE_ENABLED = 'ranger.tagsync.source.file'
 
 hadoopConfFileName = 'core-site.xml'
 ENV_HADOOP_CONF_FILE = "ranger-tagsync-env-hadoopconfdir.sh"
+ENV_PID_FILE = 'ranger-tagsync-env-piddir.sh'
+
 globalDict = {}
 configure_security = False
 
@@ -339,6 +340,11 @@ def main():
 
 
 	hadoop_conf = globalDict['hadoop_conf']
+        pid_dir_path = globalDict['TAGSYNC_PID_DIR_PATH']
+        unix_user = globalDict['unix_user']
+
+        if pid_dir_path == "":
+                pid_dir_path = "/var/run/ranger"
 
 	dirList = [ rangerBaseDirName, tagsyncBaseDirFullName, confFolderName ]
 	for dir in dirList:
@@ -390,12 +396,12 @@ def main():
 	else:
 		os.makedirs(logFolderName,logFolderPermMode)
 
-	if (not os.path.isdir(pidFolderName)):
-		os.makedirs(pidFolderName,logFolderPermMode)
-
 	if (not os.path.isdir(tagsyncLogFolderName)):
 		os.makedirs(tagsyncLogFolderName,logFolderPermMode)
 
+        if (not os.path.isdir(pid_dir_path)):
+                os.makedirs(pid_dir_path,logFolderPermMode)
+
 	if (unixUserProp in mergeProps):
 		ownerName = mergeProps[unixUserProp]
 	else:
@@ -420,7 +426,6 @@ def main():
 
 	os.chown(logFolderName,ownerId,groupId)
 	os.chown(tagsyncLogFolderName,ownerId,groupId)
-	os.chown(pidFolderName,ownerId,groupId)
 	os.chown(rangerBaseDirName,ownerId,groupId)
 
 	initializeInitD()
@@ -470,8 +475,15 @@ def main():
 				os.chmod(fn, 0755)
 
 	write_env_files("RANGER_TAGSYNC_HADOOP_CONF_DIR", hadoop_conf, ENV_HADOOP_CONF_FILE)
+        write_env_files("TAGSYNC_PID_DIR_PATH", pid_dir_path, ENV_PID_FILE);
 	os.chown(os.path.join(confBaseDirName, ENV_HADOOP_CONF_FILE),ownerId,groupId)
 	os.chmod(os.path.join(confBaseDirName, ENV_HADOOP_CONF_FILE),0755)
+        os.chown(os.path.join(confBaseDirName, ENV_PID_FILE),ownerId,groupId)
+        os.chmod(os.path.join(confBaseDirName, ENV_PID_FILE),0755)
+
+        f = open(os.path.join(confBaseDirName, ENV_PID_FILE), "a+")
+        f.write("\nexport {0}={1}".format("UNIX_TAGSYNC_USER",unix_user))
+        f.close()
 
 	hadoop_conf_full_path = os.path.join(hadoop_conf, hadoopConfFileName)
 	tagsync_conf_full_path = os.path.join(tagsyncBaseDirFullName,confBaseDirName,hadoopConfFileName)

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/unixauthservice/scripts/install.properties
----------------------------------------------------------------------
diff --git a/unixauthservice/scripts/install.properties b/unixauthservice/scripts/install.properties
index 76d3b2e..e784dda 100644
--- a/unixauthservice/scripts/install.properties
+++ b/unixauthservice/scripts/install.properties
@@ -116,6 +116,9 @@ SYNC_LDAP_GROUPNAME_CASE_CONVERSION=lower
 logdir=logs
 #/var/log/ranger/usersync
 
+# PID DIR PATH
+USERSYNC_PID_DIR_PATH=/var/run/ranger
+
 # do we want to do ldapsearch to find groups instead of relying on user entry attributes
 # valid values: true, false
 # any value other than true would be treated as false

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/unixauthservice/scripts/ranger-usersync-services.sh
----------------------------------------------------------------------
diff --git a/unixauthservice/scripts/ranger-usersync-services.sh b/unixauthservice/scripts/ranger-usersync-services.sh
index 4f57fdc..e5a676d 100644
--- a/unixauthservice/scripts/ranger-usersync-services.sh
+++ b/unixauthservice/scripts/ranger-usersync-services.sh
@@ -27,8 +27,18 @@ realScriptDir=`dirname $realScriptPath`
 cd $realScriptDir
 cdir=`pwd`
 
-pidf=/var/run/ranger/usersync.pid
-
+for custom_env_script in `find ${cdir}/conf/ -name "ranger-usersync-env*"`; do
+        if [ -f $custom_env_script ]; then
+                . $custom_env_script
+        fi
+done
+if [ -z "${USERSYNC_PID_DIR_PATH}" ]; then
+        pidf=/var/run/ranger
+fi
+pidf=${USERSYNC_PID_DIR_PATH}/usersync.pid
+if [ -z "${UNIX_USERSYNC_USER}" ]; then
+        UNIX_USERSYNC_USER=ranger
+fi
 
 if [ "${action}" == "START" ]; then
 
@@ -37,12 +47,6 @@ if [ "${action}" == "START" ]; then
 		. ${cdir}/conf/java_home.sh
 	fi
 
-	for custom_env_script in `find ${cdir}/conf/ -name "ranger-usersync-env*"`; do
-        	if [ -f $custom_env_script ]; then
-                	. $custom_env_script
-	        fi
-	done
-
 	if [ "$JAVA_HOME" != "" ]; then
         	export PATH=$JAVA_HOME/bin:$PATH
 	fi
@@ -72,7 +76,7 @@ if [ "${action}" == "START" ]; then
     if ps -p $VALUE_OF_PID > /dev/null
     then
 		echo $VALUE_OF_PID > ${pidf}
-		chown ranger ${pidf}
+                chown ${UNIX_USERSYNC_USER} ${pidf}
 		chmod 660 ${pidf}
 		pid=`cat $pidf`
 		echo "Apache Ranger Usersync Service with pid ${pid} has started."
@@ -85,7 +89,6 @@ elif [ "${action}" == "STOP" ]; then
 	WAIT_TIME_FOR_SHUTDOWN=2
 	NR_ITER_FOR_SHUTDOWN_CHECK=15
 	if [ -f $pidf ]; then
-		pidf=/var/run/ranger/usersync.pid
 		pid=`cat $pidf` > /dev/null 2>&1
 		kill -9 $pid > /dev/null 2>&1
 		sleep 1 #Give kill -9 sometime to "kill"

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d61ef2a0/unixauthservice/scripts/setup.py
----------------------------------------------------------------------
diff --git a/unixauthservice/scripts/setup.py b/unixauthservice/scripts/setup.py
index eb7e8f8..673a48f 100755
--- a/unixauthservice/scripts/setup.py
+++ b/unixauthservice/scripts/setup.py
@@ -35,7 +35,6 @@ if (not 'JAVA_HOME' in os.environ):
 debugLevel = 1
 generateXML = 0
 installPropDirName = '.'
-pidFolderName = '/var/run/ranger'
 #logFolderName = '/var/log/ranger'
 initdDirName = '/etc/init.d'
 
@@ -89,7 +88,7 @@ credUpdateClassName =  'org.apache.ranger.credentialapi.buildks'
 ENV_LOGDIR_FILE = 'ranger-usersync-env-logdir.sh'
 hadoopConfFileName = 'core-site.xml'
 ENV_HADOOP_CONF_FILE = "ranger-usersync-env-hadoopconfdir.sh"
-
+ENV_PID_FILE = 'ranger-usersync-env-piddir.sh'
 
 RANGER_USERSYNC_HOME = os.getenv("RANGER_USERSYNC_HOME")
 if RANGER_USERSYNC_HOME is None:
@@ -323,6 +322,11 @@ def main():
 	populate_global_dict()
 	logFolderName = globalDict['logdir']
 	hadoop_conf = globalDict['hadoop_conf']
+        pid_dir_path = globalDict['USERSYNC_PID_DIR_PATH']
+        unix_user = globalDict['unix_user']
+
+        if pid_dir_path == "":
+                pid_dir_path = "/var/run/ranger"
 
 	if logFolderName.lower() == "$pwd" or logFolderName == "" :
                 logFolderName = os.path.join(os.getcwd(),"logs")
@@ -395,12 +399,12 @@ def main():
 	else:
 		os.makedirs(logFolderName,logFolderPermMode)
 
-	if (not os.path.isdir(pidFolderName)):
-		os.makedirs(pidFolderName,logFolderPermMode)
-
 	if (not os.path.isdir(ugsyncLogFolderName)):
 		os.makedirs(ugsyncLogFolderName,logFolderPermMode)
 
+        if (not os.path.isdir(pid_dir_path)):
+                os.makedirs(pid_dir_path,logFolderPermMode)
+
 	if (unixUserProp in mergeProps):
 		ownerName = mergeProps[unixUserProp]
 	else:
@@ -425,7 +429,6 @@ def main():
 
 	os.chown(logFolderName,ownerId,groupId)
 	os.chown(ugsyncLogFolderName,ownerId,groupId)
-	os.chown(pidFolderName,ownerId,groupId)
 	os.chown(rangerBaseDirName,ownerId,groupId)
 	os.chown(usersyncBaseDirFullName,ownerId,groupId)
 
@@ -498,10 +501,17 @@ def main():
 
         write_env_files("logdir", logFolderName, ENV_LOGDIR_FILE);
         write_env_files("RANGER_USERSYNC_HADOOP_CONF_DIR", hadoop_conf, ENV_HADOOP_CONF_FILE);
+        write_env_files("USERSYNC_PID_DIR_PATH", pid_dir_path, ENV_PID_FILE);
         os.chown(os.path.join(confBaseDirName, ENV_LOGDIR_FILE),ownerId,groupId)
         os.chmod(os.path.join(confBaseDirName, ENV_LOGDIR_FILE),0755)
         os.chown(os.path.join(confBaseDirName, ENV_HADOOP_CONF_FILE),ownerId,groupId)
         os.chmod(os.path.join(confBaseDirName, ENV_HADOOP_CONF_FILE),0755)
+        os.chown(os.path.join(confBaseDirName, ENV_PID_FILE),ownerId,groupId)
+        os.chmod(os.path.join(confBaseDirName, ENV_PID_FILE),0755)
+
+        f = open(os.path.join(confBaseDirName, ENV_PID_FILE), "a+")
+        f.write("\nexport {0}={1}".format("UNIX_USERSYNC_USER",unix_user))
+        f.close()
 
         hadoop_conf_full_path = os.path.join(hadoop_conf, hadoopConfFileName)
 	usersync_conf_full_path = os.path.join(usersyncBaseDirFullName,confBaseDirName,hadoopConfFileName)