一、场景:安装完radis 之后,控制redis 的启动 和关闭
二、背景:
默认启动:
redis-server &
或者
redis-server ./redis.conf /* 配置文件redis.conf默认在Redis根目录下*/
默认关闭:redis-cli -p [port] shutdown
redis-cli -p 6379 shutdown
或者
kill -9 PID 也可以关闭 因为 redis 可以处理SIGTERM信号,不过如果配置集群的话,请注意conf中端口的变化
判断
ps -ef |grep redis
netsta -tnlp|grep 6379
三、处理方案:
redis 跟其它的应用两种方式启动:
1、使用系统内置的chkconfig 配置启动和自启动;
2、编写shell 判断其 redis.conf的端口,来执行开始或者关闭
设置启动加班开机自启动
1、启动脚本redis_init_script位于位于Redis的/utils/目录下。
默认为:
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/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
具体注意如下:
增加shell脚本关键属性
#!/bin/sh
#chkconfig : 2345 90 10
#decription : Redis is start or stop and autostart for server ,v1.0 ,mcw ,2016-11-07
2、配置启动脚本
1、修改配置和建立执行目录,需使用root用户。
mkdir /etc/redis
cp ./redis.conf /etc/redis/6379.conf
ps:1、 这里注意下,对应 conf 中关于pid 的生成文件为:/var/run/redis_6379.pid 跟 redis_init_script 中的保持一致
2、启用 daemonize yes
2、将启动脚本复制或者建立链接到 /etc/init.d 下,本实例命为:rdisd
cp ./utils/redis_init_script /etc/init.d/redisd
或者
ln -s /data0/redis-3.0.7/utils/redis_init_script /etc/init.d/redisd
3、设置开机启动
chkconfig redisd on
启动
service redisd start
停止:
service redisd stop
自己编写shell 也是同理,
#!/bin/bash
#decription : Redis is start or stop and autostart for server ,v1.0 ,mcw ,2016-11-07
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
testing=$(netstat -tuln |grep ":6379")
if [ "$testing" != "" ]; then
echo "Radis is running in your system"
else
redis-server /data0/redis-3.0.7/redis.conf
fi