File: tomcat10

package info (click to toggle)
orphan-sysvinit-scripts 0.21
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 220 kB
  • sloc: sh: 1,498; makefile: 5
file content (159 lines) | stat: -rwxr-xr-x 4,081 bytes parent folder | download
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
#!/bin/sh
### BEGIN INIT INFO
# Provides:          tomcat10
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Tomcat 10
# Description:       The Tomcat 10 servlet engine runs Java Web Archives.
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC='Tomcat 10 servlet engine'
NAME=tomcat10
readonly DESC NAME

# exit cleanly if disabled or not installed
test -x /usr/libexec/tomcat10/tomcat-update-policy.sh || exit 0
test -x /usr/libexec/tomcat10/tomcat-start.sh || exit 0
test -x /usr/libexec/tomcat10/tomcat-locate-java.sh || exit 0

. /lib/init/vars.sh

test -t 0 && VERBOSE=yes

# set defaults for options
CATALINA_HOME=/usr/share/tomcat10
CATALINA_BASE=/var/lib/tomcat10
CATALINA_TMPDIR=/tmp/tomcat10-tmp
export CATALINA_HOME CATALINA_BASE CATALINA_TMPDIR

JAVA_OPTS=-Djava.awt.headless=true
JSP_COMPILER= # only used if nonempty
SECURITY_MANAGER=false
UMASK=022
export JAVA_HOME JAVA_OPTS JSP_COMPILER SECURITY_MANAGER UMASK

[ -r /etc/default/tomcat10 ] && . /etc/default/tomcat10

. /lib/lsb/init-functions

# somewhat LSB-compliant exit with failure
if test x"$1" = x"status"; then
	exit_failure_msg() {
		log_failure_msg "$@"
		exit 4
	}
else
	exit_failure_msg() {
		log_failure_msg "$@"
		exit 1
	}
fi


# figure out the JRE executable catalina.sh will use
# (we need it for start-stop-daemon --exec for reliability)

[ x"${JAVA_HOME}" = x ] && \
  JAVA_HOME=$(su tomcat -s /bin/sh -c ". /usr/libexec/tomcat10/tomcat-locate-java.sh; echo \${JAVA_HOME}")

[ x"${JAVA_HOME}" != x ] || exit_failure_msg "could not determine JRE"

JAVA="${JAVA_HOME}/bin/java"

[ -x "${JAVA}" ] ||  exit_failure_msg "could not find java executable ${JAVA}"


# prepare for actions
case $1 in
(start|stop|restart|force-reload)
	# handled below
	;;
(try-restart|status)
	start-stop-daemon --status --quiet \
	    --pidfile /var/run/tomcat10.pid \
	    --exec "$JAVA" --user tomcat
	rv=$?
	# clean up stale pidfile if necessary
	(test x"$rv" = x"1" && rm -f /var/run/tomcat10.pid || :)
	# process status result
	case $1 in
	(try-restart)
		test x"$rv" = x"0" || {
			# service is not running, or status is unknown
			log_success_msg "$NAME is not running"
			exit 0
		}
		# service running, restart it
		;;
	(status)
		case $rv in
		(0)
			log_success_msg "$NAME is running"
			;;
		(4)
			log_failure_msg "could not access PID file for $NAME"
			;;
		(*)
			log_failure_msg "$NAME is not running"
			;;
		esac
		exit $rv
		;;
	esac
	;;
(reload|*)
	# not supported
	echo >&2 "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
	exit 3
	;;
esac

# handle stopping/starting
rv=0

case $1 in
(stop|restart|try-restart|force-reload)
	test x"$VERBOSE" = x"no" || log_daemon_msg "Stopping $DESC" "$NAME"
	start-stop-daemon --stop --quiet \
	    --retry=10 --oknodo --remove-pidfile \
	    --pidfile /var/run/tomcat10.pid \
	    --exec "$JAVA" --user tomcat
	rv=$?
	test x"$VERBOSE" = x"no" || log_end_msg $rv
	;;
esac

test x"$rv" = x"0" || exit $rv

case $1 in
(start|restart|try-restart|force-reload)
        # ensure the temporary directory exist and change to it
        rm -rf "$CATALINA_TMPDIR"
        mkdir "$CATALINA_TMPDIR" || \
          exit_failure_msg 'could not create JVM temporary directory'
        chown -h tomcat "$CATALINA_TMPDIR"
        cd "$CATALINA_TMPDIR"

	# create log directory if not exists
	[ -d /var/log/tomcat10 ] || mkdir -p /var/log/tomcat10

	/usr/libexec/tomcat10/tomcat-update-policy.sh || \
	    exit_failure_msg 'could not regenerating catalina.policy file'
	rm -f /var/run/tomcat10.pid
	test x"$VERBOSE" = x"no" || log_daemon_msg "Starting $DESC" "$NAME"
	start-stop-daemon --start --quiet \
	    --chuid tomcat --umask "$UMASK" \
	    --startas /usr/libexec/tomcat10/tomcat-start.sh \
	    --background --make-pidfile \
	    --pidfile /var/run/tomcat10.pid \
	    --output /var/log/tomcat10/catalina.out \
	    --exec "$JAVA" --user tomcat
	rv=$?
	test x"$VERBOSE" = x"no" || log_end_msg $rv
	;;
esac

exit $rv