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 2010/09/01 14:50:46 UTC
svn commit: r991517 - /activemq/trunk/assembly/src/release/bin/activemq
Author: dejanb
Date: Wed Sep 1 12:50:46 2010
New Revision: 991517
URL: http://svn.apache.org/viewvc?rev=991517&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQ-2884 - shell stop when jmx is off
Modified:
activemq/trunk/assembly/src/release/bin/activemq
Modified: activemq/trunk/assembly/src/release/bin/activemq
URL: http://svn.apache.org/viewvc/activemq/trunk/assembly/src/release/bin/activemq?rev=991517&r1=991516&r2=991517&view=diff
==============================================================================
--- activemq/trunk/assembly/src/release/bin/activemq (original)
+++ activemq/trunk/assembly/src/release/bin/activemq Wed Sep 1 12:50:46 2010
@@ -354,8 +354,9 @@ invokeJar(){
-Dactivemq.home=\"${ACTIVEMQ_HOME}\" \
-Dactivemq.base=\"${ACTIVEMQ_BASE}\" \
$ACTIVEMQ_CYGWIN \
- -jar \"${ACTIVEMQ_HOME}/bin/run.jar\" $COMMANDLINE_ARGS &"
- RET="$?"
+ -jar \"${ACTIVEMQ_HOME}/bin/run.jar\" $COMMANDLINE_ARGS &
+ RET=\"\$?\"; APID=\"\$!\";
+ echo \$APID > $ACTIVEMQ_DATA_DIR/stop.pid" $DOIT_POSTFIX
else
$DOIT_PREFIX "$JAVACMD $ACTIVEMQ_OPTS $ACTIVEMQ_DEBUG_OPTS \
-Dactivemq.classpath=\"${ACTIVEMQ_CLASSPATH}\" \
@@ -394,6 +395,23 @@ checkRunning(){
fi
}
+checkStopRunning(){
+ PID=$ACTIVEMQ_DATA_DIR/stop.pid
+ if [ -f "$PID" ]; then
+ if [ -z "$(cat $PID)" ];then
+ echo "ERROR: Pidfile '$PID' exists but contains no pid"
+ return 2
+ fi
+ if (ps -p $(cat $PID)|grep java >/dev/null);then
+ return 0;
+ else
+ return 1;
+ fi
+ else
+ return 1;
+ fi
+}
+
# Check if ActiveMQ is running
#
# @RET : 0 => the activemq process is running
@@ -484,7 +502,16 @@ invoke_stop(){
RET="$?"
echo -n "INFO: Waiting at least $ACTIVEMQ_KILL_MAXSECONDS seconds for regular process termination of pid '$(cat $ACTIVEMQ_PIDFILE)' : "
FOUND="0"
- for ((i=1; i <= ACTIVEMQ_KILL_MAXSECONDS ; i++));do
+ for ((i=1; i <= ACTIVEMQ_KILL_MAXSECONDS ; i++));do
+
+ if (! checkStopRunning);then
+ if (! checkRunning); then
+ echo " FINISHED"
+ FOUND="1"
+ fi
+ break
+ fi
+
if (checkRunning);then
sleep 1
echo -n "."
@@ -509,6 +536,7 @@ invoke_stop(){
exit 0
fi
rm -f $ACTIVEMQ_PIDFILE >/dev/null 2>&1
+ rm -f $ACTIVEMQ_DATA_DIR/stop.pid >/dev/null 2>&1
exit $RET
}