File: apacheds.init

package info (click to toggle)
apache-directory-server 2.0.0~M24-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 37,180 kB
  • sloc: java: 225,080; xml: 8,871; sh: 1,598; makefile: 2
file content (225 lines) | stat: -rw-r--r-- 5,737 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#!/bin/sh -e
#
# /etc/init.d/apacheds -- startup script for Apache Directory Server
#
### BEGIN INIT INFO
# Provides:          apacheds
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start ApacheDS
# Description:       Start Apache Directory Server
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=apacheds
DESC="Apache Directory Server"
ADS_HOME=/usr/share/$NAME
LOGDIR="/var/log/$NAME"
START_JAR="$ADS_HOME/lib/apacheds-service.jar"
DEFAULT=/etc/default/$NAME
PIDFILE="/var/run/$NAME.pid"

ADS_USER=apacheds

if [ `id -u` -ne 0 ]; then
	echo "You need root privileges to run this script"
	exit 1
fi

# Make sure apacheds is started with system locale
if [ -r /etc/default/locale ]; then
	. /etc/default/locale
	export LANG
fi

. /lib/lsb/init-functions

if [ -r /etc/default/rcS ]; then
	. /etc/default/rcS
fi


# This function sets the variable JDK_DIRS
find_jdks()
{
    for java_version in 9 8 7
    do
        for jvmdir in /usr/lib/jvm/java-${java_version}-openjdk-* \
                      /usr/lib/jvm/jdk-${java_version}-oracle-* \
                      /usr/lib/jvm/jre-${java_version}-oracle-*
        do
            if [ -d "${jvmdir}" -a "${jvmdir}" != "/usr/lib/jvm/java-${java_version}-openjdk-common" ]
            then
                JDK_DIRS="${JDK_DIRS} ${jvmdir}"
            fi
        done
    done

    # Add older non multi arch installations
    JDK_DIRS="${JDK_DIRS} /usr/lib/jvm/java-7-oracle"
}

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/default-java"
find_jdks

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
	if [ -d "$jdir" -a -z "${JAVA_HOME}" ]; then
		JAVA_HOME="$jdir"
	fi
done
export JAVA_HOME

export JAVA="$JAVA_HOME/bin/java"

# Check for JAVA_HOME
if [ -z "$JAVA_HOME" ]; then
	log_failure_msg "Could not start $DESC because no Java runtime was found."
	exit 0
fi


# overwrite settings from default file
if [ -f "$DEFAULT" ]; then
	. "$DEFAULT"
fi

# Timeout in seconds for the shutdown of ApacheDS
ADS_SHUTDOWN=30


# Check whether apacheds is still installed (it might not be if this package was
# removed and not purged)
if [ ! -r "$START_JAR" ]; then
	log_failure_msg "$NAME is not installed"
	exit 1
fi

JAVA_OPTIONS="${JAVA_OPTS} \
            -Dapacheds.controls=${ADS_CONTROLS} \
            -Dapacheds.extendedOperations=${ADS_EXTENDED_OPERATIONS} \
            -Dlog4j.configuration=file:${ADS_INSTANCES}/${ADS_INSTANCE}/conf/log4j.properties \
            -Dapacheds.log.dir=${ADS_INSTANCES}/${ADS_INSTANCE}/log \
            -cp '${ADS_HOME}/lib/*' \
            org.apache.directory.server.UberjarMain \
            ${ADS_INSTANCES}/${ADS_INSTANCE}/"

export JAVA_OPTIONS


case "$1" in
  start)
	log_daemon_msg "Starting $DESC instance '$ADS_INSTANCE'" "$NAME"
	if start-stop-daemon --quiet --test --start --pidfile "$PIDFILE" \
	                --user "$ADS_USER" --startas "$JAVA" > /dev/null; then

		if [ -f $PIDFILE ] ; then
			log_warning_msg "$PIDFILE exists, but apacheds was not running. Ignoring $PIDFILE"
		fi

		ADS_CMD="$JAVA $JAVA_OPTIONS"

		start-stop-daemon --start --pidfile "$PIDFILE" --chuid "$ADS_USER" --verbose \
		    --chdir "$ADS_HOME" --background --make-pidfile -x /bin/bash -- -c \
		    "$ADS_CMD"

		log_daemon_msg "$DESC started" "$NAME"

		sleep 5
		if start-stop-daemon --test --start --pidfile "$PIDFILE" \
			--user $ADS_USER --exec "$JAVA" >/dev/null; then
			log_end_msg 1
		else
			log_end_msg 0
		fi

	else
		log_warning_msg "(already running)."
		log_end_msg 0
		exit 1
	fi
	;;

  stop)
	log_daemon_msg "Stopping $DESC instance '$ADS_INSTANCE'" "$NAME"

	if start-stop-daemon --quiet --test --start --pidfile "$PIDFILE" \
		--user "$ADS_USER" --startas "$JAVA" > /dev/null; then
		if [ -x "$PIDFILE" ]; then
			log_warning_msg "(not running but $PIDFILE exists)."
		else
			log_warning_msg "(not running)."
		fi
	else
		start-stop-daemon --quiet --stop \
			--pidfile "$PIDFILE" --user "$ADS_USER" \
			--startas "$JAVA" > /dev/null
		while ! start-stop-daemon --quiet --test --start \
			  --pidfile "$PIDFILE" --user "$ADS_USER" \
			  --startas "$JAVA" > /dev/null; do
			sleep 1
			log_progress_msg "."
			ADS_SHUTDOWN=`expr $ADS_SHUTDOWN - 1` || true
			if [ $ADS_SHUTDOWN -ge 0 ]; then
				start-stop-daemon --oknodo --quiet --stop \
					--pidfile "$PIDFILE" --user "$ADS_USER" \
					--startas "$JAVA"
			else
				log_progress_msg " (killing) "
				start-stop-daemon --stop --signal 9 --oknodo \
					--quiet --pidfile "$PIDFILE" \
					--user "$ADS_USER"
			fi
		done
		rm -f "$PIDFILE"
		log_daemon_msg "$DESC stopped." "$NAME"
		log_end_msg 0
	fi
	;;

  status)
	if start-stop-daemon --quiet --test --start --pidfile "$PIDFILE" \
		--user "$ADS_USER" --startas "$JAVA" > /dev/null; then

		if [ -f "$PIDFILE" ]; then
		    log_success_msg "$DESC is not running, but pid file exists."
			exit 1
		else
		    log_success_msg "$DESC is not running."
			exit 3
		fi
	else
		log_success_msg "$DESC is running with pid `cat $PIDFILE`"
	fi
	;;

  restart|force-reload)
	if ! start-stop-daemon --quiet --test --start --pidfile "$PIDFILE" \
		--user "$ADS_USER" --startas "$JAVA" > /dev/null; then
		$0 stop $*
		sleep 1
	fi
	$0 start $*
	;;

  try-restart)
	if start-stop-daemon --quiet --test --start --pidfile "$PIDFILE" \
		--user "$ADS_USER" --startas "$JAVA" > /dev/null; then
		$0 start $*
	fi
	;;

  *)
	log_success_msg "Usage: $0 {start|stop|restart|force-reload|try-restart|status}"
	exit 1
	;;
esac

exit 0