1. 在/etc/rc.d/init.d/目录下新建redis文件,将脚本内容拷贝进去(内容在下方)
2. chmod -R /etc/init.d/redis #赋予执行权限
2. chkconfig --add redis #注册服务
3.chkconfig--level 345 redis on #指定服务在3、4、5级别运行
4. 本人redis程序安装在/usr/local/redis目录下,配置为/usr/local/redis/bin/redis.conf,如安装在其他目录,请自行修改
参数:
redis -p [port][start|stop|status|restart]
参数说明:
-p [port] :指定redis实例的端口,用于多实例的服务器
start:启动指定端口的Redis服务
stop:停止指定端口的Redis服务
status:进程状态
restart:先关闭Redis服务,再启动Redis服务
注:不指定端口时,脚本默认指定启动6379端口的redis
实例:
service redis -p 6381 start #启动6381端口实例的redis
/etc/init.d/redis start #默认启动6379端口实例的redis
脚本内容:vim/etc/init.d/redis
#!/bin/bash
#chkconfig:23455525
#description:Starts,stopsandrestarttheredis-server
#Ver:1.1
#WritebyNDchengh(08)
#usage:./script_name-p[port]{start|stop|status|restart}
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
#Sourcenetworkingconfiguration.
./etc/sysconfig/network
#Checknetworkingisup.
["$NETWORKING"="no"]&&exit0
RETVAL=0
REDIS_PORT=6379
PID=
if["$1"="-p"];then
REDIS_PORT=$2
shift2
fi
REDIS_DIR="/usr/local/redis"
REDIS="${REDIS_DIR}/bin/redis-server"
PROG=$(basename$REDIS)
CONF="${REDIS_DIR}/bin/redis-${REDIS_PORT}.conf"
if[!-f$CONF];then
if[-f"${REDIS_DIR}/bin/redis.conf"];then
CONF="${REDIS_DIR}/bin/redis.conf"
else
echo-n$"$CONFnotexist.";warning;echo
exit1
fi
fi
PID_FILE=`grep"pidfile"${CONF}|cut-d''-f2`
PID_FILE=${PID_FILE:=/var/run/redis.pid}
LOCKFILE="/var/lock/subsys/redis-${REDIS_PORT}"
if[!-x$REDIS];then
echo-n$"$REDISnotexist.";warning;echo
exit0
fi
start(){
echo-n$"Starting$PROG:"
$REDIS$CONF
RETVAL=$?
if[$RETVAL-eq0];then
success;echo;touch$LOCKFILE
else
failure;echo
fi
return$RETVAL
}
stop(){
echo-n$"Stopping$PROG:"
if[-f$PID_FILE];then
readPID
else
failure;echo;
echo-n$"$PID_FILEnotfound.";failure;echo
return1;
fi
ifcheckpid$PID;then
kill-TERM$PID>/dev/null2>&1
RETVAL=$?
if[$RETVAL-eq0];then
success;echo
echo-n"WaitingforRedistoshutdown.."
whilecheckpid$PID;do
echo-n"."
sleep1;
done
success;echo;rm-f$LOCKFILE
else
failure;echo
fi
else
echo-n$"Redisisdeadand$PID_FILEexists.";failure;echo
RETVAL=7
fi
return$RETVAL
}
restart(){
stop
start
}
rhstatus(){
status-p${PID_FILE}$PROG
}
hid_status(){
rhstatus>/dev/null2>&1
}
case"$1"in
start)
hid_status&&exit0
start
;;
stop)
rhstatus||exit0
stop
;;
restart)
restart
;;
status)
rhstatus
RETVAL=$?
;;
*)
echo$"Usage:$0-p[port]{start|stop|status|restart}"
RETVAL=1
esac
exit$RETVAL