From 6be56ea69a95bbab4cb2e89cd596a554682f5b5d Mon Sep 17 00:00:00 2001 From: Madhukar Date: Wed, 8 May 2024 21:41:41 +0530 Subject: [PATCH] [KYUUBI #4515] Capturing process id for kyuubi server launched using run command --- bin/kyuubi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/bin/kyuubi b/bin/kyuubi index da4f96a3e5a..be64117a09d 100755 --- a/bin/kyuubi +++ b/bin/kyuubi @@ -117,6 +117,14 @@ cmd="${RUNNER} ${KYUUBI_JAVA_OPTS} -cp ${KYUUBI_CLASSPATH} $CLASS $@" pid="${KYUUBI_PID_DIR}/kyuubi-$USER-$CLASS.pid" +function get_pid(){ + run_pid="$(ps -ef | grep org.apache.kyuubi.server.KyuubiServer | + grep java | grep "$KYUUBI_CONF_DIR" | grep -v grep | awk '{print $2}')" + if [[ -n $run_pid ]]; then + echo "$run_pid" > "$pid" + fi +} + function start_kyuubi() { if [[ ! -w ${KYUUBI_PID_DIR} ]]; then echo "${USER} does not have 'w' permission to ${KYUUBI_PID_DIR}" @@ -128,6 +136,8 @@ function start_kyuubi() { exit 1 fi + get_pid + if [ -f "$pid" ]; then TARGET_ID="$(cat "$pid")" if [[ $(ps -p "$TARGET_ID" -o comm=) =~ "java" ]]; then @@ -167,6 +177,14 @@ function start_kyuubi() { } function run_kyuubi() { + if [ -f "$pid" ]; then + TARGET_ID="$(cat "$pid")" + if [[ $(ps -p "$TARGET_ID" -o comm=) =~ "java" ]]; then + echo "$CLASS running as process $TARGET_ID Stop it first." + exit 1 + fi + fi + echo "Starting $CLASS" exec nice -n "${KYUUBI_NICENESS:-0}" ${cmd} } @@ -229,6 +247,12 @@ function kill_kyuubi() { } function check_kyuubi() { + if [[ ! -w ${KYUUBI_PID_DIR} ]]; then + echo "${USER} does not have 'w' permission to ${KYUUBI_PID_DIR}" + exit 1 + fi + + get_pid if [[ -f ${pid} ]]; then TARGET_ID="$(cat "$pid")" if [[ $(ps -p "$TARGET_ID" -o comm=) =~ "java" ]]; then