- 操作系統(tǒng):centos7
- 確保redis.conf中daemonize為yes,確保守護進程開啟。
1.創(chuàng)建redis腳本
vim /etc/init.d/redis.sh
#!/bin/sh
#redis 服務(wù)必須在運行級2,3,4,5下被啟動或關(guān)閉,啟動的優(yōu)先級是90,關(guān)閉的優(yōu)先級是10。
# chkconfig: 2345 10 90
# description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
export PATH
REDISPORT=6379 #端口號,根據(jù)實際開放需求修改
EXEC=/usr/local/redis/bin/redis-server #redis-cli客戶端啟動腳本的位置
REDIS_CLI=/usr/local/redis/bin/redis-cli #redis-cli客戶端啟動腳本的位置
PIDFILE=/var/run/redis.pid #要與redis.conf配置文件中的配置相同
CONF="/usr/local/redis/etc/redis.conf" #redis.conf所在的位置
AUTH=123456 #redis-cli 認證密碼,腳本關(guān)閉是需要用到
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
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT -a $AUTH SHUTDOWN
sleep 2
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
chmod a+x chmod a+x /etc/init.d/redis.sh
2.創(chuàng)建自啟服務(wù)
vim /etc/systemd/system/redis.service
#unit 本身的說明,以及與其他相依 daemon 的設(shè)置,包括在什么服務(wù)之后才啟動此 unit 之類的設(shè)置值;
[Unit]
Description=redis.service
After=network.target #在network.target 啟動之后執(zhí)行
[Service]
Type=forking #以后臺守護進程方式運行
PIDFile=/var/run/redis.pid #要注意的是,systemctl執(zhí)行腳本需要確認其解釋器 #!/bin/sh
ExecStart=/etc/init.d/redis start #systemctl start redis
ExecReload=/etc/init.d/redis restart
ExecStop=/etc/init.d/redis stop
PrivateTmp=true #分配臨時獨立空間
[Install]#這個項目就是將此 unit 安裝到哪個 target 里面去的意思!
WantedBy=multi-user.target
3.設(shè)置開機服務(wù)自啟
systemctl daemon-reload 重新加載systemctl配置文件
systemctl stop redis 停止運行中的redis
systemctl start redis 運行redis
systemctl enable redis 設(shè)置開機自啟
注
- 1.systemctl start redis如Process 報錯 (code=exited, status=203/EXEC)
第一步創(chuàng)建redis腳本完之后一定要 指定文件為可執(zhí)行文件,并且文件中需要加上其解釋器(#!/bin/sh)chmod a+x chmod a+x /etc/init.d/redis.sh
- 2.創(chuàng)建redis.service時去掉中文