stop-ds revision 4edb61f8b0f8ce9f62d803c706612376498672b4
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#!/bin/sh
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# CDDL HEADER START
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# The contents of this file are subject to the terms of the
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# Common Development and Distribution License, Version 1.0 only
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# (the "License"). You may not use this file except in compliance
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# with the License.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# You can obtain a copy of the license at
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# trunk/opends/resource/legal-notices/OpenDS.LICENSE
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# See the License for the specific language governing permissions
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# and limitations under the License.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# When distributing Covered Code, include this CDDL HEADER in each
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# file and include the License file at
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# add the following below this CDDL HEADER, with the fields enclosed
107e00c8104649437b9520d0ba298dba659e7cd7JazzyNico# by brackets "[]" replaced with your own identifying * information:
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# Portions Copyright [yyyy] [name of copyright owner]
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# CDDL HEADER END
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak#
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# Portions Copyright 2006 Sun Microsystems, Inc.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# This script may be used to request that the Directory Server shut down.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# It operates in two different ways, depending on how it is invoked. If it
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# is invoked without any arguments and a local PID file is available, then it
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# will stop the server by sending a TERM signal to the process, and this
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# script will wait until the server has stopped before exiting. If any
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# arguments were provided or there is no local PID file, then it will attempt
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# to stop the server using an LDAP request.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# See if JAVA_HOME is set. If not, then see if there is a java executable in
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# the path and try to figure it out.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakif test -z "${JAVA_BIN}"
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakthen
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak if test -z "${JAVA_HOME}"
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak then
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak JAVA_BIN=`which java 2> /dev/null`
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak if test ${?} -eq 0
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak then
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak export JAVA_BIN
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak else
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak echo "Please set JAVA_HOME to the root of a Java 5.0 installation."
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak exit 1
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak fi
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak else
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak JAVA_BIN=${JAVA_HOME}/bin/java
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak export JAVA_BIN
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak fi
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakfi
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# Explicitly set the PATH, LD_LIBRARY_PATH, LD_PRELOAD, and other important
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# system environment variables for security and compatibility reasons.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakPATH=/bin:/usr/bin
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakLD_LIBRARY_PATH=
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakLD_LIBRARY_PATH_32=
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakLD_LIBRARY_PATH_64=
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakLD_PRELOAD=
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakLD_PRELOAD_32=
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakLD_PRELOAD_64=
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakexport PATH LD_LIBRARY_PATH LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64 \
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak LD_PRELOAD LD_PRELOAD_32 LD_PRELOAD_34
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# Capture the current working directory so that we can change to it later.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# Then capture the location of this script and the Directory Server instance
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# root so that we can use them to create appropriate paths.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakWORKING_DIR=`pwd`
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakcd `dirname "${0}"`
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakSCRIPT_DIR=`pwd`
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakcd ..
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakINSTANCE_ROOT=`pwd`
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakexport INSTANCE_ROOT
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakcd "${WORKING_DIR}"
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# Configure the appropriate CLASSPATH.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakCLASSPATH=${INSTANCE_ROOT}/classes
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakfor JAR in ${INSTANCE_ROOT}/lib/*.jar
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakdo
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak CLASSPATH=${CLASSPATH}:${JAR}
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakdone
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakexport CLASSPATH
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# See if any arguments were provided and if a local PID file exists. If there
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# were no arguments and there is a PID file, then try to stop the server with
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# a kill command.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakif test -z "${1}"
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakthen
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak if test -f "${INSTANCE_ROOT}/logs/server.pid"
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak then
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak kill `cat "${INSTANCE_ROOT}/logs/server.pid"`
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak EXIT_CODE=${?}
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak if test "${EXIT_CODE}" -eq 0
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak then
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak "${JAVA_BIN}" -Xms8M -Xmx8M org.opends.server.tools.WaitForFileDelete \
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak --targetFile "${INSTANCE_ROOT}/logs/server.pid" \
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak --logFile "${INSTANCE_ROOT}/logs/errors"
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak EXIT_CODE=${?}
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak fi
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak exit ${EXIT_CODE}
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak fi
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyakfi
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak# If we've gotten here, then we should try to stop the server over LDAP.
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak"${JAVA_BIN}" ${JAVA_ARGS} org.opends.server.tools.StopDS "${@}"
bac9c0877782dcde125e5d6ea941aef234af5b20buliabyak