--- utils/redis_init_script | 67 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 53 insertions(+), 14 deletions(-) Index: utils/redis_init_script =================================================================== --- utils/redis_init_script.orig +++ utils/redis_init_script @@ -1,35 +1,74 @@ #!/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/local/bin/redis-server +EXEC=/usr/sbin/redis-server -PIDFILE=/var/run/redis_${REDISPORT}.pid -CONF="/etc/redis/${REDISPORT}.conf" +LOGFILE=/var/log/redis.log +PIDFILE=/var/run/redis.pid +CONF=/etc/redis.conf case "$1" in start) - if [ -f $PIDFILE ] - then - echo -n "$PIDFILE exists, process is already running or crashed\n" - else - echo -n "Starting Redis server...\n" - $EXEC $CONF + if [ ! -r $LOGFILE ]; then + touch $LOGFILE + chown redis:redis $LOGFILE + fi + # 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\n" + echo -n "$PIDFILE does not exist, process is not running" + rc_failed else + echo -n "Stopping service Redis..." + echo -e "SHUTDOWN\r" | /usr/bin/netcat localhost $REDISPORT & PID=$(cat $PIDFILE) - echo -n "Stopping ...\n" - echo -n "SHUTDOWN\r\n" | nc localhost $REDISPORT & while [ -x /proc/${PIDFILE} ] do - echo "Waiting for Redis to shutdown ..." sleep 1 done - echo "Redis stopped" 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 +