Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CEBAE17558 for ; Thu, 30 Oct 2014 20:34:50 +0000 (UTC) Received: (qmail 70013 invoked by uid 500); 30 Oct 2014 20:34:50 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 69972 invoked by uid 500); 30 Oct 2014 20:34:50 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 69963 invoked by uid 99); 30 Oct 2014 20:34:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Oct 2014 20:34:50 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Oct 2014 20:34:27 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id DB4462388993; Thu, 30 Oct 2014 20:34:25 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1635608 - /directory/apacheds/trunk/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/archive/apacheds.sh Date: Thu, 30 Oct 2014 20:34:25 -0000 To: commits@directory.apache.org From: lucastheisen@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20141030203425.DB4462388993@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: lucastheisen Date: Thu Oct 30 20:34:25 2014 New Revision: 1635608 URL: http://svn.apache.org/r1635608 Log: added status action and externalized setenv.sh Modified: directory/apacheds/trunk/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/archive/apacheds.sh Modified: directory/apacheds/trunk/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/archive/apacheds.sh URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/archive/apacheds.sh?rev=1635608&r1=1635607&r2=1635608&view=diff ============================================================================== --- directory/apacheds/trunk/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/archive/apacheds.sh (original) +++ directory/apacheds/trunk/installers-maven-plugin/src/main/resources/org/apache/directory/server/installers/archive/apacheds.sh Thu Oct 30 20:34:25 2014 @@ -18,13 +18,44 @@ # under the License. # +# ----------------------------------------------------------------------------- +# Control Script for the ApacheDS Server +# +# Environment Variable Prerequisites +# +# Do not set the variables in this script. Instead put them into a script +# setenv.sh in CATALINA_BASE/bin to keep your customizations separate. +# +# ADS_HOME (Optional) The directory that contains your apacheds +# install. Defaults to the parent directory of the +# directory containing this script. +# +# ADS_INSTANCES (Optional) The parent directory for the instances. +# Defaults to $ADS_HOME/instances. +# +# ADS_CONTROLS Controls to register. +# +# ADS_EXTENDED_OPERATIONS +# Extended operations to register. +# +# JAVA_HOME (Optional) The java installation directory. If not +# not specified, the java from $PATH will be used. +# +# JAVA_OPTS (Optional) Any additional java options (ex: -Xms:256m) + # Detect ads home (http://stackoverflow.com/a/630387/516433) -ADS_HOME="`dirname \"$0\"`" -ADS_HOME="`(cd \"$ADS_HOME/..\" && pwd)`" +PROGRAM_DIR="`dirname \"$0\"`" +[ -z "$ADS_HOME" ] && ADS_HOME="`(cd \"$PROGRAM_DIR/..\" && pwd)`" if [ -z "$ADS_HOME" ]; then + echo "Unable to detect ADS_HOME, and not specified" exit 1 fi +HAVE_TTY=0 +if [ "`tty`" != "not a tty" ]; then + HAVE_TTY=1 +fi + # OS sepecific support cygwin=false case "`uname`" in @@ -52,6 +83,8 @@ else exit 1 fi +[ -r "$ADS_HOME/bin/setenv.sh" ] && . "$ADS_HOME/bin/setenv.sh" + # For cygwin, ensure paths or in unix format before touched if $cygwin; then [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` @@ -59,6 +92,8 @@ if $cygwin; then [ -n "$ADS_INSTANCES" ] && ADS_INSTANCES=`cygpath --unix "$ADS_INSTANCES"` fi +[ -z "$ADS_INSTANCES" ] && ADS_INSTANCES="$ADS_HOME/instances" + RUN_JAVA= if [ -z "$JAVA_HOME" ]; then RUN_JAVA=$(which java) @@ -69,12 +104,7 @@ fi # Build the classpath (http://stackoverflow.com/a/4729899/516433) CLASSPATH=$(JARS=("$ADS_HOME"/lib/*.jar); IFS=:; echo "${JARS[*]}") -ADS_INSTANCE= -if [ -z "$ADS_INSTANCES" ]; then - ADS_INSTANCE="$ADS_HOME/instances/$ADS_INSTANCE_NAME" -else - ADS_INSTANCE="$ADS_INSTANCES/$ADS_INSTANCE_NAME" -fi +ADS_INSTANCE="$ADS_INSTANCES/$ADS_INSTANCE_NAME" ADS_OUT="$ADS_INSTANCE/log/apacheds.out" ADS_PID="$ADS_INSTANCE/run/apacheds.pid" @@ -88,13 +118,27 @@ if $cygwin; then CLASSPATH=`cygpath --path --windows "$CLASSPATH"` fi -ADS_CONTROLS="-Dapacheds.controls=org.apache.directory.api.ldap.codec.controls.cascade.CascadeFactory,org.apache.directory.api.ldap.codec.controls.manageDsaIT.ManageDsaITFactory,org.apache.directory.api.ldap.codec.controls.search.entryChange.EntryChangeFactory,org.apache.directory.api.ldap.codec.controls.search.pagedSearch.PagedResultsFactory,org.apache.directory.api.ldap.codec.controls.search.persistentSearch.PersistentSearchFactory,org.apache.directory.api.ldap.codec.controls.search.subentries.SubentriesFactory,org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncDoneValueFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncInfoValueFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncStateValueFactory" +[ -z "$ADS_CONTROLS" ] && ADS_CONTROLS="-Dapacheds.controls=org.apache.directory.api.ldap.codec.controls.cascade.CascadeFactory,org.apache.directory.api.ldap.codec.controls.manageDsaIT.ManageDsaITFactory,org.apache.directory.api.ldap.codec.controls.search.entryChange.EntryChangeFactory,org.apache.directory.api.ldap.codec.controls.search.pagedSearch.PagedResultsFactory,org.apache.directory.api.ldap.codec.controls.search.persistentSearch.PersistentSearchFactory,org.apache.directory.api.ldap.codec.controls.search.subentries.SubentriesFactory,org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncDoneValueFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncInfoValueFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueFactory,org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncStateValueFactory" -ADS_EXTENDED_OPERATIONS="-Dapacheds.extendedOperations=org.apache.directory.api.ldap.extras.extended.ads_impl.cancel.CancelFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.certGeneration.CertGenerationFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulShutdown.GracefulShutdownFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.storedProcedure.StoredProcedureFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnectFactory" +[ -z "$ADS_EXTENDED_OPERATIONS" ] && ADS_EXTENDED_OPERATIONS="-Dapacheds.extendedOperations=org.apache.directory.api.ldap.extras.extended.ads_impl.cancel.CancelFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.certGeneration.CertGenerationFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulShutdown.GracefulShutdownFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.storedProcedure.StoredProcedureFactory,org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnectFactory" + +if [ $HAVE_TTY -eq 1 ]; then + echo "Using ADS_HOME: $ADS_HOME" + echo "Using JAVA_HOME: $JAVA_HOME" + echo "" +fi if [ "$ADS_ACTION" = "start" ]; then # Printing instance information - echo "Starting ApacheDS instance '$ADS_INSTANCE_NAME'..." + [ $HAVE_TTY -eq 1 ] && echo "Starting ApacheDS instance '$ADS_INSTANCE_NAME'..." + + if [ -f $ADS_PID ]; then + PID=`cat $ADS_PID` + if kill -0 $PID > /dev/null 2>&1; then + echo "ApacheDS is already running as $PID" + exit 0 + fi + fi # Launching ApacheDS eval "\"$RUN_JAVA\"" $JAVA_OPTS $ADS_CONTROLS $ADS_EXTENDED_OPERATIONS \ @@ -106,7 +150,7 @@ if [ "$ADS_ACTION" = "start" ]; then echo $! > "$ADS_PID" elif [ "$ADS_ACTION" = "run" ]; then # Printing instance information - echo "Running ApacheDS instance '$ADS_INSTANCE_NAME'..." + [ $HAVE_TTY -eq 1 ] && echo "Running ApacheDS instance '$ADS_INSTANCE_NAME'..." # Launching ApacheDS eval "\"$RUN_JAVA\"" $JAVA_OPTS $ADS_CONTROLS $ADS_EXTENDED_OPERATIONS \ @@ -114,10 +158,37 @@ elif [ "$ADS_ACTION" = "run" ]; then -Dapacheds.log.dir="\"$ADS_INSTANCE/log\"" \ -classpath "\"$CLASSPATH\"" \ org.apache.directory.server.UberjarMain "\"$ADS_INSTANCE\"" +elif [ "$ADS_ACTION" = "status" ]; then + if [ -f $ADS_PID ]; then + PID=`cat $ADS_PID` + if kill -0 $PID > /dev/null 2>&1; then + echo "ApacheDS is running as $PID" + else + echo "ApacheDS is not running" + fi + else + [ $HAVE_TTY -eq 1 ] && echo "ApacheDS is not running" + fi elif [ "$ADS_ACTION" = "stop" ]; then # Printing instance information - PID=`cat $ADS_PID` - echo "Stoping ApacheDS instance '$ADS_INSTANCE_NAME' running as $PID" - - kill $PID + if [ -f $ADS_PID ]; then + PID=`cat $ADS_PID` + [ $HAVE_TTY -eq 1 ] && echo "Stoping ApacheDS instance '$ADS_INSTANCE_NAME' running as $PID" + + kill -15 $PID > /dev/null 2>&1 + + ATTEMPTS_REMAINING=10 + while [ $ATTEMPTS_REMAINING > 0 ]; do + kill -0 $PID > /dev/null 2>&1 -gt 0 + if [ $? > 0 ]; then + rm -f $ADS_PID > /dev/null 2>&1 + [ $HAVE_TTY -eq 1 ] && echo "ApacheDS instance '$ADS_INSTANCE_NAME' stopped successfully" + break + fi + sleep 1 + ATTEMPTS_REMAINING=`expr $ATTEMPTS_REMAINING - 1` + done + else + [ $HAVE_TTY -eq 1 ] && echo "ApacheDS is not running, $ADS_PID does not exist" + fi fi