-
-
Save bigga/ce523b4b82b051313ea00745e6e23c07 to your computer and use it in GitHub Desktop.
Geoserver init script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: geoserver | |
# Required-Start: $local_fs $remote_fs | |
# Required-Stop: $local_fs $remote_fs | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: S 0 1 6 | |
# Short-Description: GeoServer OGC server | |
### END INIT INFO | |
# Author: Lennart Jütte <[email protected]> | |
# Geoserver configuration - use /etc/default/geoserver to override these vars | |
# user that shall run GeoServer | |
# NOTE: | |
# This is the script to start Geoserver as daemon on Ubuntu | |
# You have to create this user with adduser first (in this script, it is geoserver) | |
# Then, chown GEOSERVER_HOME to that user, before running this script: | |
# sudo adduser geoserver | |
# sudo chown -R geoserver /var/www/geoserver | |
# Then, follow instruction here: https://gis.stackexchange.com/questions/127569/geoserver-init-d-script | |
# In summary, first you have to create a file called geoserver inside /etc/default | |
# Then, create another file also called geoserver in /etc/init.d | |
# The content of that file is this code. | |
# Then, follow the instructions in the link above. | |
USER=geoserver | |
GEOSERVER_DATA_DIR=/var/www/geoserver/data_dir | |
GEOSERVER_HOME=/var/www/geoserver | |
PATH=/usr/sbin:/usr/bin:/sbin:/bin | |
DESC="GeoServer daemon" | |
NAME=geoserver | |
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 | |
JAVA_OPTS="-Xms128m -Xmx512m" | |
PIDFILE=/var/run/$NAME.pid | |
SCRIPTNAME=/etc/init.d/$NAME | |
# Read configuration variable file if it is present | |
[ -r /etc/default/$NAME ] && . /etc/default/$NAME | |
DAEMON="$JAVA_HOME/bin/java" | |
DAEMON_ARGS="$JAVA_OPTS $DEBUG_OPTS -DGEOSERVER_DATA_DIR=$GEOSERVER_DATA_DIR -Djava.awt.headless=true -jar start.jar" | |
# Load the VERBOSE setting and other rcS variables | |
[ -f /etc/default/rcS ] && . /etc/default/rcS | |
# Define LSB log_* functions. | |
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. | |
. /lib/lsb/init-functions | |
do_start(){ | |
# Return | |
# 0 if daemon has been started | |
# 1 if daemon was already running | |
# 2 if daemon could not be started | |
start-stop-daemon --start --pidfile $PIDFILE --make-pidfile \ | |
--chuid $USER --chdir $GEOSERVER_HOME \ | |
-b --test --exec $DAEMON -- $DAEMON_ARGS > /dev/null \ | |
|| return 1 | |
start-stop-daemon --start --pidfile $PIDFILE --make-pidfile \ | |
--chuid $USER --chdir $GEOSERVER_HOME \ | |
-b --exec $DAEMON -- $DAEMON_ARGS \ | |
|| return 2 | |
} | |
do_stop(){ | |
# Return | |
# 0 if daemon has been stopped | |
# 1 if daemon was already stopped | |
# 2 if daemon could not be stopped | |
# other if a failure occurred | |
start-stop-daemon --stop --pidfile $PIDFILE \ | |
--user $USER \ | |
--retry=TERM/30/KILL/5 | |
RETVAL="$?" | |
[ "$RETVAL" = 2 ] && return 2 | |
# Many daemons don't delete their pidfiles when they exit. | |
rm -f $PIDFILE | |
return "$RETVAL" | |
} | |
case "$1" in | |
start) | |
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" | |
do_start | |
case "$?" in | |
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |
esac | |
;; | |
stop) | |
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" | |
do_stop | |
case "$?" in | |
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |
esac | |
;; | |
restart|force-reload) | |
log_daemon_msg "Restarting $DESC" "$NAME" | |
do_stop | |
case "$?" in | |
0|1) | |
do_start | |
case "$?" in | |
0) log_end_msg 0 ;; | |
1) log_end_msg 1 ;; # Old process is still running | |
*) log_end_msg 1 ;; # Failed to start | |
esac | |
;; | |
*) | |
# Failed to stop | |
log_end_msg 1 | |
;; | |
esac | |
;; | |
*) | |
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 | |
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 | |
exit 3 | |
;; | |
esac | |
: | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment