1#!/bin/sh 2 3# PROVIDE: redis 4# REQUIRE: LOGIN 5# BEFORE: securelevel 6# KEYWORD: shutdown 7 8# Add the following line to /etc/rc.conf to enable `redis': 9# 10#redis_enable="YES" 11# 12# Define profiles here to run separate redis instances: 13# 14#redis_profiles="foo bar" # Script uses %%PREFIX%%/etc/redis-NAME.conf respectively. 15# For correct script working please update pidfile entries in 16# redis-NAME.conf files. 17 18. /etc/rc.subr 19 20name="redis" 21rcvar="${name}_enable" 22 23extra_commands="reload" 24 25command="%%PREFIX%%/bin/redis-server" 26pidfile="%%REDIS_RUNDIR%%/$name.pid" 27 28# read configuration and set defaults 29load_rc_config "$name" 30: ${redis_enable="NO"} 31: ${redis_user="%%REDIS_USER%%"} 32: ${redis_config="%%PREFIX%%/etc/$name.conf"} 33 34command_args="${redis_config}" 35required_files="${redis_config}" 36 37_profile_exists() { 38 for _p in ${redis_profiles}; do 39 [ "${_p}" = "$1" ] && return 1; 40 done 41 return 0 42} 43 44if [ $# -eq 2 ]; then 45 _profile=$2 46 _profile_exists $_profile 47 _exists=$? 48 [ ${_exists} -ne 1 ] && { 49 echo "`basename %%PREFIX%%/etc/rc.d/redis`: no '$2' in 'redis_profiles'" 50 exit 1 51 }; 52 echo "-- Profile: ${_profile} --" 53 config_file="%%PREFIX%%/etc/${name}-${_profile}.conf" 54 command_args="${config_file}" 55 pidfile="%%REDIS_RUNDIR%%/${_profile}.pid" 56 required_files="${config_file}" 57elif [ -n "${redis_profiles}" ]; then 58 _swap=$*; shift; _profiles=$* 59 _profiles=${_profiles:-${redis_profiles}} 60 set -- ${_swap} 61 for _profile in ${_profiles}; do 62 %%PREFIX%%/etc/rc.d/redis $1 ${_profile} 63 done 64 exit 0 65fi 66 67run_rc_command "$1" 68