Subversion Repositories

?revision_form?Rev ?revision_input??revision_submit??revision_endform?

Rev 3 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/bin/sh
### BEGIN INIT INFO
# Provides:          pyscrabble
# 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: PyScrabble server
# Description:       Controls the PyScrabble server
### END INIT INFO
#
# Author:       Will Gray <graywh@gmail.com>
# Version:      1
#

set -e

PATH=/sbin:/bin:/usr/bin
DESC="PyScrabble server"
NAME=python
NAME2=pyscrabble-server
DAEMON=/usr/games/pyscrabble-server
PIDFILE=/var/run/$NAME2.pid
SCRIPTNAME=/etc/init.d/$NAME2

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

USER="pyscrabble"

# Read config file if it is present.
if [ -r /etc/default/$NAME2 ]
then
        . /etc/default/$NAME2
fi

#
#       Function that starts the daemon/service.
#
d_start() {
        start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE \
                --chuid "$USER" --exec $DAEMON \
                || echo -n " already running"
}

#
#       Function that stops the daemon/service.
#
d_stop() {
        start-stop-daemon --stop --quiet --pidfile $PIDFILE \
                --name $NAME \
                || echo -n " not running"
        rm -f $PIDFILE
}

case "$1" in
  start)
        echo -n "Starting $DESC: $NAME2"
        d_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME2"
        d_stop
        echo "."
        ;;
  #reload)
        #
        #       If the daemon can reload its configuration without
        #       restarting (for example, when it is sent a SIGHUP),
        #       then implement that here.
        #
        #       If the daemon responds to changes in its config file
        #       directly anyway, make this an "exit 0".
        #
        # echo -n "Reloading $DESC configuration..."
        # d_reload
        # echo "done."
  #;;
  restart|force-reload)
        #
        #       If the "reload" option is implemented, move the "force-reload"
        #       option to the "reload" entry above. If not, "force-reload" is
        #       just the same as "restart".
        #
        echo -n "Restarting $DESC: $NAME2"
        d_stop
        # One second might not be time enough for a daemon to stop, 
        # if this happens, d_start will fail (and dpkg will break if 
        # the package is being upgraded). Change the timeout if needed
        # be, or change d_stop to have start-stop-daemon use --retry. 
        # Notice that using --retry slows down the shutdown process somewhat.
        sleep 1
        d_start
        echo "."
        ;;
  *)
        # echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0