安装Redis报“This systems seems to use systemd.....”错

返回主页

一、问题描述

在使用官方推荐的方式./install_server.sh安装Redis的时候, 报错了, 错误信息如下:

Welcome to the redis service installer
This script will help you easily set up a running redis server

This systems seems to use systemd.
Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!

二、错误原因

Redis安装脚本提示我们需要使用 systemd来设置Redis作为一个系统服务。systemd是一个在Ubuntu、CentOS、Fedora等Linux发行版中常用的系统和服务管理器。那既然这样我, 我们只需要将Redis 设置到systemd服务管理器中就可以了。

三、解决问题

要让Redis受systemd管理,你需要创建一个systemd服务单元文件并进行相应的配置。以下是具体步骤:

第一步:创建Redis服务单元文件

  1. 进入systemd服务单元文件目录

    # 在大多数Linux发行版中,systemd服务单元文件都放置在/etc/systemd/system/目录下。
    [root@converts ~]# cd /etc/systemd/system/
    
  2. 创建Redis服务文件

    [root@converts system]# vim redis.service
    
  3. 编辑服务单元文件

    [Unit]
    Description=Redis In-Memory Data Store
    After=network.target
    
    [Service]
    User=root
    Group=root
    Type=forking
    ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
    ExecStop=/usr/local/bin/redis-cli shutdown
    TimeoutStopSec=30
    Restart=always
    StandardOutput=null
    StandardError=journal
    
    [Install]
    WantedBy=multi-user.target
    

    这里假设Redis的可执行文件位于/usr/local/bin/redis-server,并且配置文件是/etc/redis/redis.conf。如果你的安装路径不同,请相应地修改这些路径。

第二步:加载并管理服务

  1. 重载systemd配置:更新systemd的配置以包含新的服务单元文件。

    [root@converts system]# systemctl daemon-reload
    
  2. 启动Redis服务:使用systemd启动Redis服务。

    [root@converts system]# systemctl start redis
    
  3. 设置开机启动:让Redis在系统启动时自动启动。

    [root@converts system]# systemctl enable redis
    
  4. 检查服务状态:确认Redis服务是否正常运行。

    [root@converts system]# systemctl status redis
    

    完成以上步骤后,Redis就已经成功被systemd管理,可以利用systemd的命令来进行启停、重启以及查看状态等操作。

四、可能出现的问题

如果执行systemctl start redis命令试图启动redis服务的时候报错了,报错信息如下:

[root@converts redis]# sudo systemctl status redis.service
● redis.service - Redis In-Memory Data Store
   Loaded: loaded (/etc/systemd/system/redis.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 2024-05-23 12:39:21 CST; 7min ago
  Process: 6620 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf (code=exited, status=217/USER)

May 23 12:39:21 converts systemd[1]: redis.service: Control process exited, code=exited status=217
May 23 12:39:21 converts systemd[1]: redis.service: Failed with result 'exit-code'.
May 23 12:39:21 converts systemd[1]: Failed to start Redis In-Memory Data Store.
May 23 12:39:21 converts systemd[1]: redis.service: Service RestartSec=100ms expired, scheduling restart.
May 23 12:39:21 converts systemd[1]: redis.service: Scheduled restart job, restart counter is at 5.
May 23 12:39:21 converts systemd[1]: Stopped Redis In-Memory Data Store.
May 23 12:39:21 converts systemd[1]: redis.service: Start request repeated too quickly.
May 23 12:39:21 converts systemd[1]: redis.service: Failed with result 'exit-code'.
May 23 12:39:21 converts systemd[1]: Failed to start Redis In-Memory Data Store.

安装Redis报“This systems seems to use systemd.....”错

发生这个错误的原因是因为权限问题。redis.service 文件的 UserGroup和当前的登录用户不一致导致的。 尝试切换用户再试试~~

61 预览数量 2024-05-23 09:37:39 发布 时间
目录
赞数量
评论数量
返回顶部
暂无评论

暂无评论