当前位置: 首页 > 知识库问答 >
问题:

上帝无法启动redis服务器。获取此错误:`/var/run/redis/redis-server。pid:权限被拒绝

杨飞飙
2023-03-14

我正在尝试使用上帝(ruby gem)监控redis服务器。我将 /etc/redis/redis.conf中的PID文件路径更改为部署我的应用程序的用户的rails应用程序临时文件夹(使用capistrano),并且在redis.god文件中添加了“w.pid_file=...”行,它指向与我在redis.conf文件中更改的PID路径相同的路径。所以redis.god文件现在看起来像这样:

rails_env   = ENV['RAILS_ENV'] || 'production'
raise "Please specify RAILS_ENV." unless rails_env
rails_root  = ENV['RAILS_ROOT'] || File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))

# Redis
%w{6379}.each do |port|
  God.watch do |w|
    w.dir           = "#{rails_root}"
    w.name          = "redis"
    w.interval      = 30.seconds
    w.start         = "/etc/init.d/redis-server start /etc/redis/redis.conf"
    w.stop          = "/etc/init.d/redis-server stop"
    w.restart       = "/etc/init.d/redis-server restart"
    w.start_grace   = 10.seconds
    w.restart_grace = 10.seconds
    w.log           = "#{rails_root}/log/redis.log"
    w.pid_file      = "/home/deployer/myapp/current/tmp/pids/redis-server.pid"

    w.behavior(:clean_pid_file)

    w.start_if do |start|
      start.condition(:process_running) do |c|
          c.interval = 5.seconds
          c.running = false
      end
    end
  end
end

所以我面临的问题是上帝可以让redis启动。我查看了god文件的日志,上面写着:

Starting redis-server: touch: cannot touch `/var/run/redis/redis-server.pid': Permission denied

为什么它仍然试图在 /var/run/redis/redis-server.pid?我改变了redis.conf文件中的PID路径到上面显示的新一个,因为我被拒绝了权限,但它仍然坚持在 /var/run/redis/redis-server.pid.仅供参考,这就是我改变PID路径的想法:上帝配置文件来监控现有进程?

共有1个答案

羊煜
2023-03-14

请确保您已禁用SElinux。您可以使用以下命令禁用SElinux:setenforce 0

 类似资料:
  • 问题内容: 我已经按照以下说明安装了Redis:http : //redis.io/download 当我运行redis-server redis.conf时,出现以下错误: 谢谢 问题答案: 是不是这个问题你的问题?

  • 问题内容: 我在ubuntu 12.04上使用ubuntu apt-get安装了Redis服务器2.8。 我已经从其他数据库复制了dump.rdb。现在,当我尝试启动新服务器时,我不断得到: 我该如何解决? 问题答案: 您应该检查 redis.conf* 文件以查看 dir 和 dbfilename中 的权限。如果位于 dir 路径指定的路径中的 dbfilename 中命名的文件存在,并且权限也

  • Redis 服务器 Redis 服务器命令主要是用于管理 redis 服务。 实例 以下实例演示了如何获取 redis 服务器的统计信息: Redis 服务器命令 Redis Bgrewriteaof 命令 Redis Bgrewriteaof 命令用于异步执行一个 AOF(AppendOnly File) 文件重写操作。重写会创建一个当前 AOF 文件的体积优化版本。 即使 Bgrewritea

  • 我有新的ContOS 7和redis(redis 3.2.12)。Redis在默认端口6379上工作得很好,但是当我在Redis中更改端口时。conf I在日志中有错误消息:#创建服务器TCP侦听套接字*:6388:绑定:权限被拒绝。我的防火墙是禁用的(sudo firewall cmd-state not running),我不知道谁可以阻止它。

  • 我希望在我遇到的这个错误代码上得到一些帮助。 语境: 我工作的公司使用GSUITE产品。 我的团队有自己的云项目设置。 谷歌硬盘不是个人硬盘。 我们使用Airflow每天/每周/每月刷新BigQuery表。 我遵循了这些解决方案 拒绝访问:获取驱动器凭据时拒绝权限 使用带有Google工作表的BigQueryAPI时出现“全局文件模式时遇到错误”错误 还引用了https://cloud.googl

  • 问题内容: 不管我做什么,如果没有立即使用其他PID弹出另一个实例,我似乎都无法杀死Redis -我检查以确保自己正在杀死父进程,并且确实如此。有什么建议么??我已经尝试过重启机器。 问题答案: 弄清楚了!原来当我尝试了这样的SO帖子提供的第二个答案的时候,我做了然后跑了,当我实际上应该跑的时候。我不知道为什么这很重要。