1eb8dc403SDave Cobbley#!/bin/sh 2eb8dc403SDave Cobbley# 3eb8dc403SDave Cobbley### BEGIN INIT INFO 4eb8dc403SDave Cobbley# Provides: redis-server 5eb8dc403SDave Cobbley# Required-Start: $network 6eb8dc403SDave Cobbley# Required-Stop: $network 7eb8dc403SDave Cobbley# Default-Start: S 2 3 4 5 8eb8dc403SDave Cobbley# Default-Stop: 0 1 6 9eb8dc403SDave Cobbley# Short-Description: Redis, a key-value store 10eb8dc403SDave Cobbley# Description: Redis is an open source, advanced key-value store. 11eb8dc403SDave Cobbley# http://redis.io 12eb8dc403SDave Cobbley### END INIT INFO 13eb8dc403SDave Cobbley 14eb8dc403SDave Cobbleytest -f /usr/bin/redis-server || exit 0 15eb8dc403SDave Cobbley 16eb8dc403SDave CobbleyARGS="/etc/redis/redis.conf" 17eb8dc403SDave Cobbley 18eb8dc403SDave Cobbleycase "$1" in 19eb8dc403SDave Cobbley start) 20eb8dc403SDave Cobbley echo "Starting redis-server..." 21eb8dc403SDave Cobbley start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS 22eb8dc403SDave Cobbley ;; 23eb8dc403SDave Cobbley stop) 24eb8dc403SDave Cobbley echo "Stopping redis-server..." 25eb8dc403SDave Cobbley start-stop-daemon --stop --quiet --exec /usr/bin/redis-server 26eb8dc403SDave Cobbley ;; 27eb8dc403SDave Cobbley restart) 28eb8dc403SDave Cobbley echo "Stopping redis-server..." 29eb8dc403SDave Cobbley start-stop-daemon --stop --quiet --exec /usr/bin/redis-server 30*fc113eadSAndrew Geissler 31*fc113eadSAndrew Geissler # Since busybox implementation ignores --retry arguments repeatedly check 32*fc113eadSAndrew Geissler # if the process is still running and try another signal after a timeout, 33*fc113eadSAndrew Geissler # efectively simulating a stop with --retry=TERM/5/KILL/5 schedule. 34*fc113eadSAndrew Geissler waitAfterTerm=5000000 # us / 5000 ms / 5 s 35*fc113eadSAndrew Geissler waitAfterKill=5000000 # us / 5000 ms / 5 s 36*fc113eadSAndrew Geissler waitStep=100000 # us / 100 ms / 0.1 s 37*fc113eadSAndrew Geissler waited=0 38*fc113eadSAndrew Geissler start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server 39*fc113eadSAndrew Geissler processOff=$? 40*fc113eadSAndrew Geissler while [ $processOff -eq 0 ] && [ $waited -le $waitAfterTerm ] ; do 41*fc113eadSAndrew Geissler usleep ${waitStep} 42*fc113eadSAndrew Geissler ((waited+=${waitStep})) 43*fc113eadSAndrew Geissler start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server 44*fc113eadSAndrew Geissler processOff=$? 45*fc113eadSAndrew Geissler done 46*fc113eadSAndrew Geissler if [ $processOff -eq 0 ] ; then 47*fc113eadSAndrew Geissler start-stop-daemon --stop --signal KILL --exec /usr/bin/redis-server 48*fc113eadSAndrew Geissler start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server 49*fc113eadSAndrew Geissler processOff=$? 50*fc113eadSAndrew Geissler fi 51*fc113eadSAndrew Geissler waited=0 52*fc113eadSAndrew Geissler while [ $processOff -eq 0 ] && [ $waited -le $waitAfterKill ] ; do 53*fc113eadSAndrew Geissler usleep ${waitStep} 54*fc113eadSAndrew Geissler ((waited+=${waitStep})) 55*fc113eadSAndrew Geissler start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server 56*fc113eadSAndrew Geissler processOff=$? 57*fc113eadSAndrew Geissler done 58*fc113eadSAndrew Geissler # Here $processOff will indicate if waiting and retrying according to 59*fc113eadSAndrew Geissler # the schedule ended in a successfull stop or not. 60*fc113eadSAndrew Geissler 61eb8dc403SDave Cobbley echo "Starting redis-server..." 62eb8dc403SDave Cobbley start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS 63eb8dc403SDave Cobbley ;; 64eb8dc403SDave Cobbley *) 65eb8dc403SDave Cobbley echo "Usage: /etc/init.d/redis-server {start|stop|restart}" 66eb8dc403SDave Cobbley exit 1 67eb8dc403SDave Cobbley ;; 68eb8dc403SDave Cobbleyesac 69eb8dc403SDave Cobbley 70eb8dc403SDave Cobbleyexit 0 71eb8dc403SDave Cobbley 72