summaryrefslogtreecommitdiff
blob: 2515a9add768f9a9557bb62d888c98998f9e5abd (plain)
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
#!/sbin/openrc-run
# Copyright 2020 Agostino Sarubbo <ago@gentoo.org>
# Distributed under the terms of the GNU General Public License v2

PIDFILE="/run/${SVCNAME}.pid"

start() {
	ebegin "Starting ${SVCNAME}"
	start-stop-daemon \
				--start \
				--quiet \
				--background \
				--stdout ${CATALINA_HOME}/logs/catalina.out \
				--stderr ${CATALINA_HOME}/logs/catalina.out \
				--chdir ${CATALINA_TMPDIR} \
				--user ${SVCNAME}:${SVCNAME} \
				--make-pidfile --pidfile ${PIDFILE} \
				--exec java \
				-- \
					${JAVA_OPTS} \
					org.apache.catalina.startup.Bootstrap \
					start
	eend $?
}

stop() {
	MYPID="$( cat ${PIDFILE} )"

	ebegin "Stopping ${SVCNAME}"
	start-stop-daemon \
				--stop \
				--quiet \
				--retry=60 \
				--pidfile ${PIDFILE} \
				--exec java \
				-- \
					${JAVA_OPTS} \
					-Xms64m -Xmx64m \
					org.apache.catalina.startup.Bootstrap \
					stop
	sleep 5

	# check if the pid still exist and wait for a graceful shutdown
	COUNT="1"
	while [ -n "$( ps -p ${MYPID} | grep ${MYPID} )" ] && [ "${COUNT}" -lt "5" ]
	do
		echo "Waiting ${SVCNAME} stop for 3 seconds"
		sleep 3
		let COUNT++
	done

	# if the pid still exists, then kill it
	if [ -n "$( ps -p ${MYPID} | grep ${MYPID} )" ]
	then
		start-stop-daemon --stop --quiet --pidfile ${PIDFILE} --signal=9
		kill -9 ${MYPID}
	fi

	# WIPE temp and work
	rm ${CATALINA_HOME}/temp/* -fr
	rm ${CATALINA_HOME}/work/* -fr

	eend $?
}