ubuntu 16.04 redis开机自启动脚本

我们一般编译安装好Redis后,需要将Redis添加到系统服务,service命令进行如启动start,restart重启,sotp停止等操作,并可以使用并设置为随系统服务一起初始化(开机启动). 首先我们先设置redis后台运行,打开配置文件:

vim /usr/local/redis-3.2.1/redis.conf  

找到daemonize选项设置为yes:

daemonize yes  

然后保存. 然后我们创建一个init脚本,以Joe这里为例,创建一个名为redis的文件:

cd /etc/init.d/ && touch redis  

添加如下内容:

#!/bin/sh
#Redis Init Service
#警告!下面INIT LSB描述信息不可删除
### BEGIN INIT INFO
# Provides:        redis
# Required-Start:    $syslog $remote_fs
# Required-Stop:    $syslog $remote_fs
# Should-Start:        $local_fs
# Should-Stop:        $local_fs
# Default-Start:    2 3 4 5
# Default-Stop:        0 1 6
# Short-Description:    redis-server - Persistent key-value db
# Description:        redis-server - Persistent key-value db
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  
DAEMON=/usr/local/bin/redis-server  
DAEMON_ARGS=/usr/local/bin/redis.conf  
NAME=redis  
DESC=redis  
PIDFILE=/var/run/redis.pid

test -x $DAEMON || exit 0  
test -x $DAEMONBOOTSTRAP || exit 0

set -e

case "$1" in  
  start)
    echo -n "Starting $DESC: "
    touch $PIDFILE
    chown redis:redis $PIDFILE
    if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid redis:redis --exec $DAEMON -- $DAEMON_ARGS
    then
        echo "$NAME."
    else
        echo "failed"
    fi
    ;;
  stop)
    echo -n "Stopping $DESC: "
    if start-stop-daemon --stop --retry 10 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
    then
        echo "$NAME."
    else
        echo "failed"
    fi
    rm -f $PIDFILE
    ;;

  restart|force-reload)
    ${0} stop
    ${0} start
    ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0

#the end

这里需要注意的是: DAEMON和DAEMON_ARGS一定要修改为你实际安装路径,不要写错了.此外INIT LSB描述信息必备不可删除
删除LSB描述,添加服务将会抛出一个这样的warning,这有可能会引起一些问题:

update-rc.d: warning: /etc/init.d/test missing LSB information  

接着我们新建一个redis专用的用户:

sudo useradd redis  

接着为redis设置一个单独的data和log目录

sudo mkdir -p /usr/share/redisData  
sudo mkdir -p /var/log/redis  
sudo chown redis.redis /usr/share/redisData  
sudo chown redis.redis /var/log/redis  

顺便要记得修改redis.config里面的data和log路径为上面一致 然后我们将Redis注册到系统服务和开机启动:

sudo update-rc.d redis defaults  

若要卸载移除执行下面命令

sudo update-rc.d -f redis remove  

现在你可以以service命令启动它试试配置是否成功:

service redis start  

如果出现Starting redis: failed错误,请检查log查看原因,如果启动正常,恭喜你配置成功.