centos7将redis服务开机自启动

本文详细介绍两种在Linux环境下配置和启动Redis服务的方法。方法一通过编辑systemd服务文件实现,包括配置、启动及设置开机自启步骤。方法二涉及修改redis.conf文件,配置daemonize和bind参数,复制配置文件和启动脚本,调整脚本参数,最终实现服务启动与自启。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一

1.编辑vi /etc/systemd/system/redis.service

[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
#redis的安装目录
ExecStart=/usr/local/redis-2.8.18/src/redis-server /usr/local/redis-2.8.18/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target

2.重新加载参数systemctl daemon-reload
3.启动redis服务,systemctl start redis
4.开机自启动 systemctl enable redis

方法二

1.先配置redis.conf,将daemonize 配置为yes,可以进入后台运行,将bind改为0.0.0.0

在这里插入图片描述
在这里插入图片描述

2.复制redis配置文件

//1.创建文件
mkdir /etc/redis
//2.将redis安装好目录里面的redis.conf复制到/etc/redis
cp -r /usr/local/redis/redis.conf /etc/redis/

3.复制redis启动脚本

cp -r /usr/local/redis/utils/redis_init_script /etc/init.d/redis

4.修改脚本启动参数

[root@localhost redis]# vi /etc/init.d/redis
#在/etc/init.d/redis文件的头部添加下面两行注释代码,也就是在文件中#!/bin/sh的下方添加
# chkconfig: 2345 10 90  
# description: Start and Stop redis 

同时还要修改参数,指定redis的安装路径

EXEC=/usr/local/redis/src/redis-server
CLIEXEC=/usr/local/redis/src/redis-cli

5.启动redis

[root@pc1 src]# service redis start
Starting Redis server...
2336:C 04 Sep 16:56:26.149 # Fatal error, can't open config file '/etc/redis/6379.conf'

启动时报错,这是因为我拷贝redis.conf文件到/etc/redis/目录下忘记改名字的原因
在这里插入图片描述
将文件名字改过来

mv /etc/redis/redis.conf /etc/redis/6379.conf

再启动,启动成功

[root@pc1 redis]# service redis start
Starting Redis server...
2351:C 04 Sep 16:59:10.398 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2351:C 04 Sep 16:59:10.398 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=2351, just started
2351:C 04 Sep 16:59:10.398 # Configuration loaded

6.看下redis端口是否起来

[root@pc1 redis]# netstat -ntlp|grep 6379
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      2535/redis-server 0

7.设置redis开机自启

//1.将redis添加到开机自启
[root@pc1 redis]# chkconfig redis on
//2.开启redis
[root@pc1 redis]# chkconfig redis on
//3.列出开机自启的服务(2 3 4 5 为是否开启状态,on开启 off未开启)
[root@pc1 redis]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

aegis           0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off
redis           0:off   1:off   2:on    3:on    4:on    5:on    6:off

chkconfig的级别:

0:关机

1:单用户模式

2:无网络支持的多用户模式

3:有网络支持的多用户模式

4:保留,未使用

5:有网络支持有X-Windows(图形界面)支持的多用户模式

6:重新引导系统,即重启
<think>嗯,用户想解决CentOS 7Redis 5设置开机自启动失败的问题。我需要先回忆一下相关的步骤和可能出错的地方。根据用户提供的引用,有几个可能的原因。首先,用户可能没有正确配置systemd服务文件。比如服务文件的路径是否正确,权限有没有问题,还有里面的ExecStart路径是否正确指向redis-server和配置文件的位置。另外,redis.conf里的daemonize选项是否设置成了yes,这个如果不开启的话,systemd可能无法正确管理进程,导致启动失败。还有,用户可能在运行chkconfig命令时遇到了问题,因为在CentOS 7中应该使用systemctl来管理服务,而不是chkconfig,所以这个命令可能会报错。需要检查是否错误地混合使用了旧的方法和新的systemd方法。还有SELinux或者防火墙的设置可能阻止了服务的启动,不过这个可能性可能小一些。另外,服务文件中的用户权限是否正确,比如以redis用户运行可能需要对应的用户存在。可能用户没有创建redis用户,或者目录权限不对。此外,服务文件中的Type设置是否正确,如果是forking类型,需要指定正确的PID文件路径,否则systemd可能检测不到进程已经启动。还有可能用户没有运行daemon-reload来重新加载服务配置,导致修改后的服务文件没有被识别。需要一步步检查这些点,给出具体的解决方案。可能还需要用户检查日志,用journalctl -u redis.service来查看具体的错误信息。最后,确保所有步骤都正确,比如复制配置文件、启用服务等。</think>在CentOS 7上设置Redis 5开机自启失败的解决方案如下: ### 一、检查服务文件配置 1. **创建正确的systemd服务文件** ```bash sudo vi /etc/systemd/system/redis.service ``` 内容应为: ```ini [Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /path/to/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always Type=forking [Install] WantedBy=multi-user.target ``` **注意**:`/path/to/redis.conf`需替换为实际路径,建议存放在`/etc/redis/redis.conf`[^2][^4] 2. **验证关键参数** - 确认`redis.conf`中有: ```bash daemonize yes # 必须开启守护进程模式[^4] pidfile /var/run/redis_6379.pid # 确保路径存在且可写 ``` ### 二、权限与路径检查 1. **创建专用用户**(若未创建) ```bash sudo groupadd -r redis sudo useradd -r -g redis -s /sbin/nologin redis ``` 2. **设置目录权限** ```bash sudo chown -R redis:redis /var/lib/redis # 数据目录 sudo chown redis:redis /etc/redis/redis.conf ``` ### 三、关键操作步骤 1. **重新加载服务配置** ```bash sudo systemctl daemon-reload # 修改服务文件后必须执行[^5] ``` 2. **启用开机启动** ```bash sudo systemctl enable redis # 正确方式(而非chkconfig)[^3] ``` ### 四、故障排查方法 1. **查看启动日志** ```bash journalctl -u redis.service -b # 查看启动失败详细信息 ``` 2. **常见错误处理: - **"Failed at step USER"**:检查`/etc/passwd`中redis用户是否存在 - **"Can't open PID file"**:确认`pidfile`路径在`redis.conf`中正确配置 - **"Address already in use"**:执行`sudo netstat -tulnp | grep 6379`排查端口占用 ### 五、验证流程 ```bash sudo systemctl start redis sudo systemctl status redis # 应显示active (running) sudo reboot # 重启后验证自动启动 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值