| #! /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: 0 1 6 | |
| # Short-Description: GeoServer OGC server | |
| ### END INIT INFO | |
| # Author: Lennart Jütte <lenn@rtjuette.de> | |
| # Geoserver configuration - use /etc/default/geoserver to override these vars | |
| # user that shall run GeoServer | |
| USER=geoserver | |
| GEOSERVER_HOME=/usr/share/geoserver/geoserver-2.7.1.1 | |
| GEOSERVER_DATA_DIR=$GEOSERVER_HOME/data_dir | |
| PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$GEOSERVER_HOME/bin | |
| DESC="GeoServer daemon" | |
| NAME=geoserver | |
| JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 | |
| JAVA_OPTS="-Xms128m -Xmx512m" | |
| DAEMON="$JAVA_HOME/bin/java" | |
| 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_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