【问题标题】:Trouble starting the redis server启动redis服务器出现问题
【发布时间】:2021-06-21 03:25:27
【问题描述】:

我正在使用 rails 并想运行 sidekiq,而运行 sidekiq 需要安装 Redis 服务器。我按照数字海洋的说明为我的 KDE Neon 安装了 Redis。这是我尝试运行sudo systemctl status redis 时显示的错误:

redis.service - Redis In-Memory Data Store
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2021-03-24 17:24:12 IST; 6s ago
Process: 47334 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf (code=exited, status=203/EXEC)
Main PID: 47334 (code=exited, status=203/EXEC)
        
Mar 24 17:24:12 maxagno3 systemd[1]: redis.service: Scheduled restart job, restart counter is at 5.
Mar 24 17:24:12 maxagno3 systemd[1]: Stopped Redis In-Memory Data Store.
Mar 24 17:24:12 maxagno3 systemd[1]: redis.service: Start request repeated too quickly.
Mar 24 17:24:12 maxagno3 systemd[1]: redis.service: Failed with result 'exit-code'.
Mar 24 17:24:12 maxagno3 systemd[1]: Failed to start Redis In-Memory Data Store.

使用redis-cli 可以正常工作。我假设当我第一次运行命令 sudo systemctl disable redis 时,它删除了 redis.service 文件。从那时起,我已经卸载并安装了 Redis,但错误仍然存​​在。

我们将不胜感激快速帮助。

【问题讨论】:

    标签: ruby-on-rails redis sidekiq


    【解决方案1】:

    您是否尝试在 [Service] Type=forking 部分添加到 /etc/systemd/system/redis.service ?

    【讨论】:

    • 是的,我做到了。它仍然显示相同的错误。
    • 为了排除其他东西,您也尝试这样做,对吗? sudo chown redis:redis /var/lib/redis sudo systemctl restart redis
    • 我刚试过你评论这篇文章。但这也没有奏效。我对redis不是很熟悉。
    【解决方案2】:

    您显示的错误隐藏了您最初的错误。 Redis 基本上处于重新启动循环中,您的错误正在逃避。您需要做的是禁用此重新启动功能以解决下划线问题。

    这可以通过执行以下操作来完成:

    1. 编辑 /etc/systemd/system/redis.service
    2. 将重启行编辑为Restart=no。可能的选项是noon-successon-failureon-abnormalon-watchdogon-abortalways
    3. 将开始限制间隔编辑为StartLimitInterval=0。这通常设置得非常高,以防止服务不断重启导致负载激增
    4. 最后重新加载您的服务以使您的更改生效。这是通过运行systemctl daemon-reload 来完成的

    一旦您的服务停止循环,您可以尝试手动启动服务以获取实际错误。如果错误太大,您可以查看操作系统的一般日志,专门针对 Redis 进行 greping,或者运行 journalctl:journalctl -u redis.service

    希望这会有所帮助!

    【讨论】:

    • 你能告诉我StartLimitInterval 在哪里以便我可以设置它吗?因为我是redis的新手。如果它必须在 redis.service 中,它在我的 redis.service 文件中不存在。
    • 通常在服务文件中。可能有另一个服务文件控制一切?此处列出了可能的位置列表:freedesktop.org/software/systemd/man/…
    • 我确实将开始时间间隔添加到服务文件并按照您的所有步骤操作,但错误仍然存​​在。
    【解决方案3】:

    如果您想要干净且可重复的方法,我建议您始终使用 docker,尤其是对于开发环境。 所以启动 docker redis 就这么简单:

    docker run -d -p 6379:6379 --name my-redis redis
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多