Repository: karaf Updated Branches: refs/heads/master 516c7b20a -> b6f472115
[KARAF-4330] Instance script doesn't return correct PID number if root instance is started two times Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b6f47211 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b6f47211 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b6f47211 Branch: refs/heads/master Commit: b6f472115503eb3d98ee6bf881e9dbcb10fedb0c Parents: 516c7b2 Author: Andrea Cosentino <[email protected]> Authored: Fri Feb 19 08:40:41 2016 +0100 Committer: Andrea Cosentino <[email protected]> Committed: Fri Feb 19 08:40:41 2016 +0100 ---------------------------------------------------------------------- .../base/src/main/resources/resources/bin/karaf | 59 ++++++++++++++------ 1 file changed, 42 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/b6f47211/assemblies/features/base/src/main/resources/resources/bin/karaf ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/resources/resources/bin/karaf b/assemblies/features/base/src/main/resources/resources/bin/karaf index 477bb23..93236a5 100755 --- a/assemblies/features/base/src/main/resources/resources/bin/karaf +++ b/assemblies/features/base/src/main/resources/resources/bin/karaf @@ -324,7 +324,20 @@ setupDefaults() { #DEFAULT_JAVA_DEBUG_OPTS="-Xrunyjpagent" } - +checkRootInstance() { + ROOT_INSTANCE_RUNNING=false + if [ -f "${KARAF_HOME}/instances/instance.properties" ]; + then + ROOT_INSTANCE_PID=$(sed -n -e '/item.0.pid/ s/.*\= *//p' "${KARAF_HOME}/instances/instance.properties") + ROOT_INSTANCE_NAME=$(sed -n -e '/item.0.name/ s/.*\= *//p' "${KARAF_HOME}/instances/instance.properties") + if [ "$ROOT_INSTANCE_PID" -ne "0" ]; then + if ps ax | grep -v grep | grep "$ROOT_INSTANCE_PID" > /dev/null + then + ROOT_INSTANCE_RUNNING=true + fi + fi + fi +} init() { # Determine if there is special OS handling we must perform @@ -357,6 +370,9 @@ init() { # Determine the JVM version >= 1.6 checkJvmVersion + # Check if a root instance is already running + checkRootInstance + # Setup default options setupDefaults @@ -368,6 +384,7 @@ init() { run() { OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true" MAIN=org.apache.karaf.main.Main + CHECK_ROOT_INSTANCE_RUNNING=true while [ "$1" != "" ]; do case $1 in 'clean') @@ -383,13 +400,16 @@ run() { ;; 'status') MAIN=org.apache.karaf.main.Status + CHECK_ROOT_INSTANCE_RUNNING=false shift ;; 'stop') MAIN=org.apache.karaf.main.Stop + CHECK_ROOT_INSTANCE_RUNNING=false shift ;; 'console') + CHECK_ROOT_INSTANCE_RUNNING=false shift ;; 'server') @@ -404,6 +424,7 @@ run() { ;; 'client') OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false" + CHECK_ROOT_INSTANCE_RUNNING=false shift ;; *) @@ -447,22 +468,26 @@ run() { mkdir -p "$KARAF_DATA/log" fi - $KARAF_EXEC "$JAVA" $JAVA_OPTS \ - -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" \ - -Djava.ext.dirs="${JAVA_EXT_DIRS}" \ - -Dkaraf.instances="${KARAF_HOME}/instances" \ - -Dkaraf.home="$KARAF_HOME" \ - -Dkaraf.base="$KARAF_BASE" \ - -Dkaraf.data="$KARAF_DATA" \ - -Dkaraf.etc="$KARAF_ETC" \ - -Dkaraf.restart.jvm.supported=true \ - -Djava.io.tmpdir="$KARAF_DATA/tmp" \ - -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" \ - $KARAF_SYSTEM_OPTS \ - $KARAF_OPTS \ - $OPTS \ - -classpath "$CLASSPATH" \ - $MAIN "$@" + if [ "$ROOT_INSTANCE_RUNNING" = "false" ] || [ "$CHECK_ROOT_INSTANCE_RUNNING" = "false" ] ; then + $KARAF_EXEC "$JAVA" $JAVA_OPTS \ + -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" \ + -Djava.ext.dirs="${JAVA_EXT_DIRS}" \ + -Dkaraf.instances="${KARAF_HOME}/instances" \ + -Dkaraf.home="$KARAF_HOME" \ + -Dkaraf.base="$KARAF_BASE" \ + -Dkaraf.data="$KARAF_DATA" \ + -Dkaraf.etc="$KARAF_ETC" \ + -Dkaraf.restart.jvm.supported=true \ + -Djava.io.tmpdir="$KARAF_DATA/tmp" \ + -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" \ + $KARAF_SYSTEM_OPTS \ + $KARAF_OPTS \ + $OPTS \ + -classpath "$CLASSPATH" \ + $MAIN "$@" + else + die "There is a Root instance already running with name $ROOT_INSTANCE_NAME and pid $ROOT_INSTANCE_PID" + fi KARAF_RC=$? if [ $KARAF_DAEMON ] ; then
