You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

108 lines
3.4 KiB

#!@l_prefix@/bin/openpkg rc
##
## rc.redis -- Run-Commands
##
%config
redis_enable="$openpkg_rc_def"
redis_log_prolog="true"
redis_log_epilog="true"
redis_log_numfiles="10"
redis_log_minsize="1M"
redis_log_complevel="9"
%common
redis_cluster="@cluster@"
redis_tls="@tls@"
redis_cfgfile="@l_prefix@/etc/redis/redis.conf"
redis_cfgfile_m="@l_prefix@/etc/redis/redis.master.conf"
redis_cfgfile_s="@l_prefix@/etc/redis/redis.slave.conf"
redis_cfgfile_t="@l_prefix@/etc/redis/redis-tls.conf"
redis_logfile="@l_prefix@/var/redis/log/redis.log"
redis_logfile_m="@l_prefix@/var/redis/log/redis.master.log"
redis_logfile_s="@l_prefix@/var/redis/log/redis.slave.log"
redis_logfile_t="@l_prefix@/var/redis/log/redis-tls.log"
redis_pidfile="@l_prefix@/var/redis/run/redis.pid"
redis_pidfile_m="@l_prefix@/var/redis/run/redis.master.pid"
redis_pidfile_s="@l_prefix@/var/redis/run/redis.slave.pid"
redis_pidfile_t="@l_prefix@/var/redis/run/redis-tls.pid"
redis_signal () {
local a=0
local t=0
if [ $redis_cluster = yes ]; then
[ -f $redis_pidfile_m ] && kill -$1 `cat $redis_pidfile_m`
local m=$?
[ -f $redis_pidfile_s ] && kill -$1 `cat $redis_pidfile_s`
local s=$?
[ $m -eq 0 -o $s -eq 0 ]
a=$?
else
[ -f $redis_pidfile ] && kill -$1 `cat $redis_pidfile`
a=$?
fi
if [ $redis_tls = yes ]; then
[ -f $redis_pidfile_t ] && kill -$1 `cat $redis_pidfile_t`
t=$?
fi
[ $a -eq 0 -a $t -eq 0 ]
}
%status -u @l_rusr@ -o
redis_usable="unknown"
redis_active="no"
rcService redis enable yes && \
redis_signal 0 && redis_active="yes"
echo "redis_enable=\"$redis_enable\""
echo "redis_usable=\"$redis_usable\""
echo "redis_active=\"$redis_active\""
%start -u @l_rusr@
rcService redis enable yes || exit 0
rcService redis active yes && exit 0
if [ $redis_cluster = yes ]; then
@l_prefix@/bin/redis-server $redis_cfgfile_m
@l_prefix@/bin/redis-server $redis_cfgfile_s
else
@l_prefix@/bin/redis-server $redis_cfgfile
fi
if [ $redis_tls = yes ]; then
@l_prefix@/sbin/stunnel $redis_cfgfile_t
fi
%stop -u @l_rusr@
rcService redis enable yes || exit 0
rcService redis active no && exit 0
redis_signal TERM
sleep 2
if [ $redis_cluster = yes ]; then
rm -f $redis_pidfile_m >/dev/null 2>&1 || true
rm -f $redis_pidfile_s >/dev/null 2>&1 || true
else
rm -f $redis_pidfile >/dev/null 2>&1 || true
fi
if [ $redis_tls = yes ]; then
rm -f $redis_pidfile_t >/dev/null 2>&1 || true
fi
%restart -u @l_rusr@
rcService redis enable yes || exit 0
rcService redis active no && exit 0
rc redis stop start
%daily -u @l_rusr@
rcService redis enable yes || exit 0
if [ $redis_cluster = yes ]; then
logfiles="$redis_logfile_m $redis_logfile_s"
else
logfiles="$redis_logfile"
fi
if [ $redis_tls = yes ]; then
logfiles="$logfiles $redis_logfile_t"
fi
shtool rotate -f \
-n ${redis_log_numfiles} -s ${redis_log_minsize} -d \
-z ${redis_log_complevel} -m 664 -o @l_rusr@ -g @l_rgrp@ \
-P "${redis_log_prolog}" \
-E "${redis_log_epilog}; rc redis restart" \
$logfiles