summaryrefslogtreecommitdiff
path: root/community/redis/redis.d
diff options
context:
space:
mode:
Diffstat (limited to 'community/redis/redis.d')
-rw-r--r--community/redis/redis.d68
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