centos7 redis开机启动配置
centos的启动程序放在/etc/init.d/
目录下
一、简单说明
/etc/init.d
是 /etc/rc.d/init.d
的软链接(soft link)。可以通过 ll 命令查看。
ls -ld /etc/init.d
lrwxrwxrwx. 1 root root 11 Aug 30 2015 /etc/init.d -> rc.d/init.d
-
都是用来放服务脚本的,当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的run level确定不同的启动级别。
-
在制作服务脚本的过程中,使用了Linux的两个版本,CentOS和Ubuntu,需要在两个版本中都可以开机启动服务。但Ubuntu没有 /etc/rc.d/init.d这个目录,所以,为了保持同一种服务在CentOS和Ubuntu使用的统一性,将服务脚本(注:服务脚本在两个不同版本中是不同的)都放在 /etc/init.d 目录下,最终达到的效果是相同的。
-
需要说明的是:在CentOS和Ubuntu两个版本中,除了服务脚本放置的目录是相同的,服务脚本的编写及服务配置都是不同的。比如CentOS使用Chkconfig进行配置,而Ubuntu使用sysv-rc-conf进行配置。
第一步 把redis-**/utils
目录下的 redis_init_script
复制到/etc/init.d
并改名为redis
更改以下内容(具体看自己redis的包在哪里,我的放在/usr/local/redis-5.0.7
):
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO
REDISPORT=6379
EXEC=/usr/local/redis-5.0.7/src/redis-server
CLIEXEC=/usr/local/redis-5.0.7/src/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
#注意这个配置文件的路径
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
更改权限
chmod +x /etc/init.d/redis
不然会报错env: /etc/init.d/redis: Permission denied
开机启动
chkconfig redis on
启动
service redis start
关闭
service redis stop