#!/bin/sh
#
# /etc/init.d/redis
#
### BEGIN INIT INFO
# Provides:          redis
# Required-Start:    $syslog $remote_fs
# Should-Start:
# Required-Stop:     $syslog $remote_fs
# Should-Stop:
# Default-Start:     3 4 5
# Default-Stop:      0 1 2 6
# Short-Description: Redis server
# Description:       Starts and stops the Redis daemon
### END INIT INFO

. /etc/rc.status

REDISPORT=6379
EXEC=/usr/sbin/redis-server

PIDFILE=/var/run/redis.pid
CONF=/etc/redis.conf

case "$1" in
    start)
        # Create a pidfile the server can write into.
        if [ ! -r $PIDFILE ]; then
            touch $PIDFILE
            chown redis:redis $PIDFILE
        fi
        echo -n "Starting service Redis "
        /sbin/startproc -u redis -g redis -p $PIDFILE -s -e $EXEC $CONF >/dev/null 2>&1
        rc_status -v
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo -n "$PIDFILE does not exist, process is not running"
                rc_failed
        else
                echo -n "Stopping service Redis ..."
                echo -e "SHUTDOWN\r" | netcat localhost $REDISPORT &
                PID=$(cat $PIDFILE)
                while [ -x /proc/${PIDFILE} ]
                do
                    sleep 1
                done
        fi
        rc_status -v
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    reload)
        $0 restart
        ;;
    status)
        echo -n "Checking for service Redis: "
        /sbin/checkproc -p $PIDFILE $EXEC
        rc_status -v
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|reload}"
        exit 1
esac
rc_exit
