diff options
Diffstat (limited to 'community/redis/redis.d')
-rw-r--r-- | community/redis/redis.d | 68 |
1 files changed, 40 insertions, 28 deletions
diff --git a/community/redis/redis.d b/community/redis/redis.d index 333f45d6b..3294963ed 100644 --- a/community/redis/redis.d +++ b/community/redis/redis.d @@ -1,53 +1,65 @@ #!/bin/bash +daemon_name=redis + . /etc/rc.conf . /etc/rc.d/functions -PID=`cat /var/run/redis.pid 2>/dev/null` +REDISPORT=6379 +EXEC=/usr/bin/redis-server +CLIEXEC=/usr/bin/redis-cli +PIDFILE=/var/run/redis.pid +WORKDIR=/var/lib/redis +CONF="/etc/redis.conf" + case "$1" in start) - stat_busy "Starting Redis Server" - [ -d /var/lib/redis ] || { mkdir /var/lib/redis; } - if [ -z "$PID" ]; then - /usr/bin/redis-server /etc/redis.conf >/dev/null - RESULT=$? - else - REDIS_PID=`pidof redis-server` - if [ -z "$REDIS_PID" ]; then - /usr/bin/redis-server /etc/redis.conf >/dev/null - RESULT=$? - elif [ `pidof redis-server` -eq $PID ]; then - RESULT=1 - else - /usr/bin/redis-server /etc/redis.conf >/dev/null - RESULT=$? - fi - fi + stat_busy "Starting $daemon_name" + [ -d $WORKDIR ] || mkdir $WORKDIR - if [ $RESULT -gt 0 ]; then + if [ -f $PIDFILE ]; then stat_fail + exit 1 else - add_daemon redis - stat_done + $EXEC $CONF >/dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + add_daemon $daemon_name + stat_done + fi fi ;; + stop) - stat_busy "Stopping Redis Server" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then + stat_busy "Stopping $daemon_name" + + if [ ! -f $PIDFILE ]; then stat_fail + exit 1 else - rm /var/run/redis.pid - rm_daemon redis - stat_done + PID=$(cat $PIDFILE) + $CLIEXEC -p $REDISPORT shutdown + [ -d /proc/${PID} ] && sleep 1 + [ -d /proc/${PID} ] && sleep 5 + [ -d /proc/${PID} ] && kill -9 $PID + [ -d /proc/${PID} ] && stat_fail || { stat_done; rm_daemon $daemon_name; } fi ;; + restart) $0 stop sleep 1 $0 start ;; + + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + ;; + *) - echo "usage: $0 {start|stop|restart}" + echo "usage: $0 {start|stop|restart|status}" esac exit 0 |