|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
1 |
#!/bin/sh
|
2 |
#
|
|
3 |
# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
|
|
4 |
#
|
|
5 |
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
|
|
6 |
# Modified for Debian GNU/Linux by Ian Murdock <imurdock@gnu.ai.mit.edu>.
|
|
7 |
# Modified for Tomcat by Stefan Gybas <sgybas@debian.org>.
|
|
8 |
# Modified for Tomcat6 by Thierry Carrez <thierry.carrez@ubuntu.com>.
|
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
9 |
# Additional improvements by Jason Brittain <jason.brittain@mulesoft.com>.
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
10 |
#
|
11 |
### BEGIN INIT INFO
|
|
|
2.3.2
by Torsten Werner
* Fix init script: |
12 |
# Provides: tomcat6
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
13 |
# Required-Start: $local_fs $remote_fs $network
|
14 |
# Required-Stop: $local_fs $remote_fs $network
|
|
15 |
# Should-Start: $named
|
|
16 |
# Should-Stop: $named
|
|
17 |
# Default-Start: 2 3 4 5
|
|
|
7
by Thierry Carrez
* tomcat6.init, tomcat6.postinst, tomcat6.dirs, tomcat6.default, |
18 |
# Default-Stop: 0 1 6
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
19 |
# Short-Description: Start Tomcat.
|
20 |
# Description: Start the Tomcat servlet engine.
|
|
21 |
### END INIT INFO
|
|
22 |
||
23 |
set -e
|
|
24 |
||
25 |
PATH=/bin:/usr/bin:/sbin:/usr/sbin |
|
26 |
NAME=tomcat6 |
|
27 |
DESC="Tomcat servlet engine" |
|
28 |
DEFAULT=/etc/default/$NAME |
|
|
14
by Thierry Carrez
* Merge from Debian unstable. Remaining changes: |
29 |
JVM_TMP=/tmp/tomcat6-tmp |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
30 |
|
31 |
if [ `id -u` -ne 0 ]; then |
|
32 |
echo "You need root privileges to run this script" |
|
33 |
exit 1
|
|
34 |
fi
|
|
35 |
||
36 |
# Make sure tomcat is started with system locale
|
|
37 |
if [ -r /etc/default/locale ]; then |
|
38 |
. /etc/default/locale |
|
39 |
export LANG
|
|
40 |
fi
|
|
41 |
||
42 |
. /lib/lsb/init-functions |
|
|
2.3.2
by Torsten Werner
* Fix init script: |
43 |
|
44 |
if [ -r /etc/default/rcS ]; then |
|
45 |
. /etc/default/rcS |
|
46 |
fi
|
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
47 |
|
48 |
||
49 |
# The following variables can be overwritten in $DEFAULT
|
|
50 |
||
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
51 |
# Run Tomcat 6 as this user ID and group ID
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
52 |
TOMCAT6_USER=tomcat6 |
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
53 |
TOMCAT6_GROUP=tomcat6 |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
54 |
|
55 |
# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
|
|
56 |
# defined in $DEFAULT)
|
|
57 |
JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm" |
|
58 |
||
59 |
# Look for the right JVM to use
|
|
60 |
for jdir in $JDK_DIRS; do |
|
61 |
if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then |
|
62 |
JAVA_HOME="$jdir" |
|
63 |
fi
|
|
64 |
done
|
|
65 |
export JAVA_HOME
|
|
66 |
||
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
67 |
# Directory where the Tomcat 6 binary distribution resides
|
68 |
CATALINA_HOME=/usr/share/$NAME |
|
69 |
||
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
70 |
# Directory for per-instance configuration files and webapps
|
71 |
CATALINA_BASE=/var/lib/$NAME |
|
72 |
||
73 |
# Use the Java security manager? (yes/no)
|
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
74 |
TOMCAT6_SECURITY=no |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
75 |
|
76 |
# Default Java options
|
|
77 |
# Set java.awt.headless=true if JAVA_OPTS is not set so the
|
|
78 |
# Xalan XSL transformer can work without X11 display on JDK 1.4+
|
|
79 |
# It also looks like the default heap size of 64M is not enough for most cases
|
|
80 |
# so the maximum heap size is set to 128M
|
|
81 |
if [ -z "$JAVA_OPTS" ]; then |
|
82 |
JAVA_OPTS="-Djava.awt.headless=true -Xmx128M" |
|
83 |
fi
|
|
84 |
||
85 |
# End of variables that can be overwritten in $DEFAULT
|
|
86 |
||
87 |
# overwrite settings from default file
|
|
88 |
if [ -f "$DEFAULT" ]; then |
|
89 |
. "$DEFAULT"
|
|
90 |
fi
|
|
91 |
||
92 |
if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then |
|
93 |
log_failure_msg "$NAME is not installed" |
|
94 |
exit 1
|
|
95 |
fi
|
|
96 |
||
97 |
POLICY_CACHE="$CATALINA_BASE/work/catalina.policy" |
|
98 |
||
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
99 |
if [ -z "$CATALINA_TMPDIR" ]; then |
100 |
CATALINA_TMPDIR="$JVM_TMP" |
|
101 |
fi
|
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
102 |
|
103 |
# Set the JSP compiler if set in the tomcat6.default file
|
|
104 |
if [ -n "$JSP_COMPILER" ]; then |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
105 |
JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=\"$JSP_COMPILER\"" |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
106 |
fi
|
107 |
||
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
108 |
SECURITY="" |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
109 |
if [ "$TOMCAT6_SECURITY" = "yes" ]; then |
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
110 |
JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=\"$POLICY_CACHE\"" |
111 |
SECURITY="-security" |
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
112 |
fi
|
113 |
||
114 |
# Define other required variables
|
|
115 |
CATALINA_PID="/var/run/$NAME.pid" |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
116 |
CATALINA_SH="$CATALINA_HOME/bin/catalina.sh" |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
117 |
|
118 |
# Look for Java Secure Sockets Extension (JSSE) JARs
|
|
119 |
if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then |
|
120 |
JSSE_HOME="${JAVA_HOME}/jre/" |
|
121 |
fi
|
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
122 |
|
123 |
catalina_sh() { |
|
124 |
# Escape any double quotes in the value of JAVA_OPTS
|
|
125 |
JAVA_OPTS="$(echo $JAVA_OPTS | sed 's/\"/\\\"/g')" |
|
126 |
||
127 |
AUTHBIND_COMMAND="" |
|
128 |
if [ "$AUTHBIND" = "yes" -a "$1" = "start" ]; then |
|
129 |
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true" |
|
130 |
AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c " |
|
131 |
fi
|
|
132 |
||
133 |
# Define the command to run Tomcat's catalina.sh as a daemon
|
|
134 |
# set -a tells sh to export assigned variables to spawned shells.
|
|
135 |
TOMCAT_SH="set -a; JAVA_HOME=\"$JAVA_HOME\"; source \"$DEFAULT\"; \ |
|
136 |
CATALINA_HOME=\"$CATALINA_HOME\"; \
|
|
137 |
CATALINA_BASE=\"$CATALINA_BASE\"; \
|
|
138 |
JAVA_OPTS=\"$JAVA_OPTS\"; \
|
|
139 |
CATALINA_PID=\"$CATALINA_PID\"; \
|
|
140 |
CATALINA_TMPDIR=\"$CATALINA_TMPDIR\"; \
|
|
141 |
LANG=\"$LANG\"; JSSE_HOME=\"$JSSE_HOME\"; \
|
|
142 |
cd \"$CATALINA_BASE\"; \
|
|
143 |
\"$CATALINA_SH\" $@"
|
|
144 |
||
145 |
if [ "$AUTHBIND" = "yes" -a "$1" = "start" ]; then |
|
146 |
TOMCAT_SH="'$TOMCAT_SH'" |
|
147 |
fi
|
|
148 |
||
149 |
# Run the catalina.sh script as a daemon
|
|
150 |
set +e
|
|
151 |
touch "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out |
|
152 |
chown $TOMCAT6_USER "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out |
|
153 |
start-stop-daemon --start -u "$TOMCAT6_USER" -g "$TOMCAT6_GROUP" \ |
|
154 |
-c "$TOMCAT6_USER" -d "$CATALINA_TMPDIR" \ |
|
155 |
-x /bin/bash -- -c "$AUTHBIND_COMMAND $TOMCAT_SH"
|
|
156 |
status="$?" |
|
157 |
set +a -e
|
|
158 |
return $status |
|
159 |
}
|
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
160 |
|
161 |
case "$1" in |
|
162 |
start)
|
|
163 |
if [ -z "$JAVA_HOME" ]; then |
|
164 |
log_failure_msg "no JDK found - please set JAVA_HOME" |
|
165 |
exit 1
|
|
166 |
fi
|
|
167 |
||
168 |
if [ ! -d "$CATALINA_BASE/conf" ]; then |
|
169 |
log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE" |
|
170 |
exit 1
|
|
171 |
fi
|
|
172 |
||
173 |
log_daemon_msg "Starting $DESC" "$NAME" |
|
174 |
if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \ |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
175 |
--user $TOMCAT6_USER --exec "$JAVA_HOME/bin/java" \ |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
176 |
>/dev/null; then
|
177 |
||
178 |
# Regenerate POLICY_CACHE file
|
|
179 |
umask 022
|
|
180 |
echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \ |
|
181 |
> "$POLICY_CACHE"
|
|
182 |
echo "" >> "$POLICY_CACHE" |
|
183 |
cat $CATALINA_BASE/conf/policy.d/*.policy \ |
|
184 |
>> "$POLICY_CACHE"
|
|
185 |
||
|
7
by Thierry Carrez
* tomcat6.init, tomcat6.postinst, tomcat6.dirs, tomcat6.default, |
186 |
# Remove / recreate JVM_TMP directory
|
187 |
rm -rf "$JVM_TMP"
|
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
188 |
mkdir -p "$JVM_TMP" || { |
|
7
by Thierry Carrez
* tomcat6.init, tomcat6.postinst, tomcat6.dirs, tomcat6.default, |
189 |
log_failure_msg "could not create JVM temporary directory"
|
190 |
exit 1
|
|
191 |
}
|
|
192 |
chown $TOMCAT6_USER "$JVM_TMP" |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
193 |
|
194 |
catalina_sh start $SECURITY
|
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
195 |
sleep 5 |
196 |
if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \ |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
197 |
--user $TOMCAT6_USER --exec "$JAVA_HOME/bin/java" \ |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
198 |
>/dev/null; then
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
199 |
if [ -f "$CATALINA_PID" ]; then |
200 |
rm -f "$CATALINA_PID" |
|
201 |
fi
|
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
202 |
log_end_msg 1
|
203 |
else
|
|
204 |
log_end_msg 0
|
|
205 |
fi
|
|
206 |
else
|
|
207 |
log_progress_msg "(already running)" |
|
208 |
log_end_msg 0 |
|
209 |
fi
|
|
210 |
;; |
|
211 |
stop)
|
|
212 |
log_daemon_msg "Stopping $DESC" "$NAME" |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
213 |
|
214 |
set +e
|
|
|
19
by Thierry Carrez, Thierry Carrez, Niels Thykier, Ludovic Claude
[ Thierry Carrez ] |
215 |
if [ -f "$CATALINA_PID" ]; then |
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
216 |
start-stop-daemon --stop --pidfile "$CATALINA_PID" \ |
217 |
--user "$TOMCAT6_USER" \ |
|
218 |
--retry=TERM/20/KILL/5 >/dev/null
|
|
|
19
by Thierry Carrez, Thierry Carrez, Niels Thykier, Ludovic Claude
[ Thierry Carrez ] |
219 |
if [ $? -eq 1 ]; then |
220 |
log_progress_msg "$DESC is not running but pid file exists, cleaning up" |
|
221 |
elif [ $? -eq 3 ]; then |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
222 |
PID="`cat $CATALINA_PID`" |
223 |
log_failure_msg "Failed to stop $NAME (pid $PID)"
|
|
224 |
exit 1
|
|
225 |
fi
|
|
|
19
by Thierry Carrez, Thierry Carrez, Niels Thykier, Ludovic Claude
[ Thierry Carrez ] |
226 |
rm -f "$CATALINA_PID" |
227 |
rm -rf "$JVM_TMP"
|
|
228 |
else
|
|
229 |
log_progress_msg "(not running)" |
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
230 |
fi
|
231 |
log_end_msg 0
|
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
232 |
set -e
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
233 |
;; |
234 |
status)
|
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
235 |
set +e
|
236 |
start-stop-daemon --test --start --pidfile "$CATALINA_PID" \ |
|
237 |
--user $TOMCAT6_USER --exec "$JAVA_HOME/bin/java" \ |
|
238 |
>/dev/null 2>&1 |
|
239 |
if [ "$?" = "0" ]; then |
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
240 |
|
241 |
if [ -f "$CATALINA_PID" ]; then |
|
242 |
log_success_msg "$DESC is not running, but pid file exists." |
|
|
6
by Thierry Carrez
* debian/tomcat6.postinst: |
243 |
exit 1
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
244 |
else
|
245 |
log_success_msg "$DESC is not running." |
|
|
6
by Thierry Carrez
* debian/tomcat6.postinst: |
246 |
exit 3
|
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
247 |
fi
|
248 |
else
|
|
249 |
log_success_msg "$DESC is running with pid `cat $CATALINA_PID`" |
|
250 |
fi
|
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
251 |
set -e |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
252 |
;; |
253 |
restart|force-reload)
|
|
|
19
by Thierry Carrez, Thierry Carrez, Niels Thykier, Ludovic Claude
[ Thierry Carrez ] |
254 |
if [ -f "$CATALINA_PID" ]; then |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
255 |
$0 stop
|
256 |
sleep 1 |
|
257 |
fi
|
|
258 |
$0 start
|
|
259 |
;; |
|
260 |
try-restart)
|
|
261 |
if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \ |
|
|
2.2.7
by Ludovic Claude, Ludovic Claude, Jason Brittain
[ Ludovic Claude ] |
262 |
--user $TOMCAT6_USER --exec "$JAVA_HOME/bin/java" \ |
|
3
by Thierry Carrez
* Adding full Tomcat 6 server stack support (LP: #256052) |
263 |
>/dev/null; then
|
264 |
$0 start
|
|
265 |
fi
|
|
266 |
;; |
|
267 |
*)
|
|
268 |
log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
|
|
269 |
exit 1
|
|
270 |
;; |
|
271 |
esac
|
|
272 |
||
273 |
exit 0
|