You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2014/12/23 13:16:54 UTC

activemq git commit: https://issues.apache.org/jira/browse/AMQ-5378 - shell script improvements

Repository: activemq
Updated Branches:
  refs/heads/trunk 815e0ec5b -> 7100bf377


https://issues.apache.org/jira/browse/AMQ-5378 - shell script improvements


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/7100bf37
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/7100bf37
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/7100bf37

Branch: refs/heads/trunk
Commit: 7100bf377ae3e2e537a789fb4566dfc72c8f8261
Parents: 815e0ec
Author: Dejan Bosanac <de...@nighttale.net>
Authored: Tue Dec 23 13:16:28 2014 +0100
Committer: Dejan Bosanac <de...@nighttale.net>
Committed: Tue Dec 23 13:16:47 2014 +0100

----------------------------------------------------------------------
 assembly/src/release/bin/activemq | 54 ++++++++++++++++------------------
 1 file changed, 26 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/7100bf37/assembly/src/release/bin/activemq
----------------------------------------------------------------------
diff --git a/assembly/src/release/bin/activemq b/assembly/src/release/bin/activemq
index 505ff63..9d80a09 100755
--- a/assembly/src/release/bin/activemq
+++ b/assembly/src/release/bin/activemq
@@ -33,13 +33,6 @@
 COMMANDLINE_ARGS="$@"
 EXEC_OPTION=""
 
-# For using instances
-if ( basename $0 | grep "activemq-instance-" > /dev/null);then
-   INST="`basename $0|sed 's/^activemq-instance-//;s/\.sh$//'`"
-   ACTIVEMQ_CONFIGS="/etc/default/activemq-instance-${INST} $HOME/.activemqrc-instance-${INST}"
-   echo "INFO: Using alternative activemq configuration files: $ACTIVEMQ_CONFIGS"
-fi
-
 # ------------------------------------------------------------------------
 # HELPERS
 
@@ -146,7 +139,14 @@ fi
 # LOAD CONFIGURATION
 
 # CONFIGURATION
-ACTIVEMQ_CONFIGS="$ACTIVEMQ_HOME/bin/env /etc/default/activemq $HOME/.activemqrc"
+# For using instances
+if ( basename $0 | grep "activemq-instance-" > /dev/null);then
+  INST="`basename $0|sed 's/^activemq-instance-//;s/\.sh$//'`"
+  ACTIVEMQ_CONFIGS="/etc/default/activemq-instance-${INST} $HOME/.activemqrc-instance-${INST}"
+  echo "INFO: Using alternative activemq configuration files: $ACTIVEMQ_CONFIGS"
+else
+  ACTIVEMQ_CONFIGS="/etc/default/activemq $HOME/.activemqrc $ACTIVEMQ_HOME/bin/env"
+fi
 
 # load activemq configuration
 CONFIG_LOAD="no"
@@ -160,21 +160,16 @@ for ACTIVEMQ_CONFIG in $ACTIVEMQ_CONFIGS;do
        echo "INFO: Loading '$ACTIVEMQ_CONFIG'"
        . $ACTIVEMQ_CONFIG
       CONFIG_LOAD="yes"
+      break
      fi
    fi
 done
 
 # inform user that default configuration is loaded, no suitable configfile found
 if [ "$CONFIG_LOAD" != "yes" ];then
-   if [ "$1" != "setup" ];then
       echo "INFO: Using default configuration";
-      echo "(you can configure options in one of these file: $ACTIVEMQ_CONFIGS)"
-      echo
-      echo "INFO: Invoke the following command to create a configuration file"
-      CONFIGS=`echo $ACTIVEMQ_CONFIGS|sed 's/[ ][ ]*/ | /'`
-      echo "$0 setup [ $CONFIGS ]"
+      echo "      Configurations are loaded in the following order: $ACTIVEMQ_CONFIGS"
       echo
-   fi
 fi
 
 # ------------------------------------------------------------------------
@@ -198,7 +193,7 @@ if [ "$OSTYPE" = "cygwin" ]; then
     ACTIVEMQ_HOME="`cygpath --unix "$ACTIVEMQ_HOME"`"
   [ -n "$JAVA_HOME" ] &&
     JAVA_HOME="`cygpath --unix "$JAVA_HOME"`"
-  [ -n "$CLASSPATH" ] &&
+  [ -n "$ACTIVEMQ_CLASSPATH" ] &&
     ACTIVEMQ_CLASSPATH="`cygpath --path --unix "$ACTIVEMQ_CLASSPATH"`"
 fi
 
@@ -290,7 +285,7 @@ invokeJar(){
       DOIT_PREFIX="sh -c "
       DOIT_POSTFIX=";"
    elif [ "`id -u`" = "0" ];then
-      DOIT_PREFIX="su -c "
+      DOIT_PREFIX="su -s /bin/sh -c "
       DOIT_POSTFIX=" - $ACTIVEMQ_USER"
       echo "INFO: changing to user '$ACTIVEMQ_USER' to invoke java"
    fi
@@ -309,7 +304,7 @@ invokeJar(){
               echo \"INFO: pidfile created : '$PIDFILE' (pid '\$APID')\";exit \$RET" $DOIT_POSTFIX
       RET="$?"
    elif [ -n "$PIDFILE" ] && [ "$PIDFILE" = "stop" ];then
-          PID=`cat ${ACTIVEMQ_PIDFILE}`
+          PID="`cat ${ACTIVEMQ_PIDFILE}`"
           $EXEC_OPTION $DOIT_PREFIX "\"$JAVACMD\" $ACTIVEMQ_OPTS $ACTIVEMQ_DEBUG_OPTS \
               -Dactivemq.classpath=\"${ACTIVEMQ_CLASSPATH}\" \
               -Dactivemq.home=\"${ACTIVEMQ_HOME}\" \
@@ -319,7 +314,7 @@ invokeJar(){
               $ACTIVEMQ_CYGWIN \
               -jar \"${ACTIVEMQ_HOME}/bin/activemq.jar\" $COMMANDLINE_ARGS --pid $PID &
               RET=\"\$?\"; APID=\"\$!\";
-              echo \$APID > $ACTIVEMQ_DATA/stop.pid; exit \$RET" $DOIT_POSTFIX
+              echo \$APID > "${PIDFILE}.stop"; exit \$RET" $DOIT_POSTFIX
       RET="$?"
    else
       $EXEC_OPTION $DOIT_PREFIX "\"$JAVACMD\" $ACTIVEMQ_OPTS $ACTIVEMQ_DEBUG_OPTS \
@@ -351,8 +346,8 @@ checkRunning(){
         echo "ERROR: Pidfile '$ACTIVEMQ_PIDFILE' exists but contains no pid"
         return 2
        fi
-       PID=`cat $ACTIVEMQ_PIDFILE`
-       RET=`ps -p $PID|grep java`
+       PID="`cat $ACTIVEMQ_PIDFILE`"
+       RET="`ps -p $PID|grep java`"
        if [ -n "$RET" ];then
          return 0;
        else
@@ -364,7 +359,7 @@ checkRunning(){
 }
 
 checkStopRunning(){
-    PID=$ACTIVEMQ_DATA/stop.pid
+    PID="${PIDFILE}.stop"
     if [ -f "$PID" ]; then
        if  [ -z "`cat $PID`" ];then
         echo "ERROR: Pidfile '$PID' exists but contains no pid"
@@ -542,8 +537,7 @@ invoke_task(){
 }
 
 show_help() {
-  invokeJar
-  RET="$?"
+  invokeJar|sed "s,Usage: Main,Usage: $0,"
   cat << EOF
 Tasks provided by the sysv init script:
     restart         - stop running instance (if there is one), start new instance
@@ -551,13 +545,17 @@ Tasks provided by the sysv init script:
     status          - check if activemq process is running
 
 Configuration of this script:
-    Default configuration of this scriptThe configuration of this script can be placed on /etc/default/activemq or $HOME/.activemqrc.
+The configuration of this script is read from the following files:
+	$ACTIVEMQ_CONFIGS
+    This script searches for the files in the listed order and reads the first available file.
+    Modify $ACTIVEMQ_BASE/bin/env or create a copy of that file on a suitable location.
+
     To use additional configurations for running multiple instances on the same operating system
     rename or symlink script to a name matching to activemq-instance-<INSTANCENAME>.
     This changes the configuration location to /etc/default/activemq-instance-<INSTANCENAME> and
-    \$HOME/.activemqrc-instance-<INSTANCENAME>. Configuration files in /etc have higher precedence.
+    \$HOME/.activemqrc-instance-<INSTANCENAME>.
 EOF
-  exit $RET
+  exit 1
 }
 
 # ------------------------------------------------------------------------
@@ -570,7 +568,7 @@ fi
 
 case "$1" in
   status)
-      invoke_status
+    invoke_status
     ;;
   restart)
     if ( checkRunning );then