#! /bin/sh # # OPENDJ SERVICE SCRIPT # # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License, Version 1.0 only # (the "License"). You may not use this file except in compliance # with the License. # # You can obtain a copy of the license at legal-notices/CDDLv1_0.txt # or http://forgerock.org/license/CDDLv1.0.html. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at # legal-notices/CDDLv1_0.txt. If applicable, # add the following below this CDDL HEADER, with the fields enclosed # by brackets "[]" replaced with your own identifying information: # Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # Copyright 2013-2015 ForgeRock AS. # # chkconfig: 2345 80 05 # description: Starts and stops opendj LDAPv3 service. # ### BEGIN INIT INFO # Provides: opendj # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: This is the opendj daemon # Description: OpenDJ is an LDAPv3 compliant directory service, developed for the Java # platform, providing a high performance, highly available and secure store # for the identities managed by enterprises. Its easy installation process, # combined with the power of the Java platform makes OpenDJ one of the # simplest and fastest directory servers to deploy and manage. ### END INIT INFO # Set up source function library depending on the distribution if [ -f /etc/redhat-release ] ; then # Redhat . /etc/init.d/functions elif [ -f /etc/SuSE-release ] ; then # SuSE . /etc/rc.status elif [ -f /etc/lsb-release ] ; then # Debian . /lib/lsb/init-functions elif [ -f /etc/init.d/functions.sh ] ; then # Other dist. . /etc/init.d/functions.sh fi # Sets the script vars INSTALL_ROOT="/opt/opendj" export INSTALL_ROOT DAEMON=opendj # Original PID file ORIGINPIDFILE=/opt/opendj/logs/server.pid # Pid file is a symlink to /opt/opendj/log/server.pid PIDFILE=/var/run/opendj.pid RETVAL=0 # If the daemon is not there, then exit / LSB return code. test -x "$INSTALL_ROOT/bin/start-ds" || exit 5 # Recreates the symlink if needed (/var/run is deleted after reboot (eg. debian)). test -h "$PIDFILE" || ln -s $ORIGINPIDFILE $PIDFILE instance_configured() { if [ -f $INSTALL_ROOT/config/buildinfo ] && [ "$(ls -A $INSTALL_ROOT/config/archived-configs)" ] ; then return 1 fi return 0 } # Starts the server and creates pid file. start() { instance_configured if [ $? = 0 ] ; then echo "Instance is not configured. Please run $INSTALL_ROOT/setup" return 1 fi echo -n "Starting $DAEMON: " # Server is running if [ -e $PIDFILE ] ; then echo "> Already running." return 0 else "$INSTALL_ROOT"/bin/start-ds --quiet RETVAL=$? if [ $RETVAL = 0 ] ; then echo "> SUCCESS." else echo "> FAILURE." fi echo "" return $RETVAL fi } # Stops the server and removes pid file. stop() { instance_configured if [ $? = 0 ] ; then echo "Instance is not configured. Please run $INSTALL_ROOT/setup" return 1 fi echo -n "Stopping $DAEMON: " if [ -e $PIDFILE ] then # Server is running "$INSTALL_ROOT"/bin/stop-ds --quiet RETVAL=$? if [ $RETVAL = 0 ] ; then echo "> SUCCESS." else echo "> FAILURE." fi echo "" return $RETVAL else echo "> Already stopped." echo "" return 3 fi } # Displays the service status status() { instance_configured if [ $? = 0 ] ; then echo "Instance is not configured. Please run $INSTALL_ROOT/setup" return 1 fi echo -n $"$DAEMON status: " if [ -e $PIDFILE ] ; then echo "> Running." return 0 else echo "> Stopped." return 3 fi } case "$1" in start) start ;; stop) stop ;; restart) instance_configured if [ $? = 0 ] ; then echo "Instance is not configured. Please run $INSTALL_ROOT/setup" exit 1 else stop sleep 5 start fi ;; force-reload) # Not implemented. echo "Not implemented." ;; status) status ;; *) echo "Usage: /etc/init.d/$DAEMON {start|restart|stop|force-reload|status}" exit 1 ;; esac exit $RETVAL