【问题标题】:Puma undefined local variable or method `daemonize' errorPuma 未定义的局部变量或方法“守护进程”错误
【发布时间】:2021-08-16 12:14:30
【问题描述】:

各位,我找不到问题如下:

config/puma.rb:23:in `_load_from': undefined local variable or method `daemonize' for #<Puma::DSL:0x000055596fadb448> (NameError)

这是我的puma.rb

workers 1
threads 1, 6
daemonize true
rails_env = ENV['RAILS_ENV'] || "production"
environment rails_env
app_dir = File.expand_path("../..", __FILE__)
tmp_dir = "#{app_dir}/tmp"
bind "unix:///#{tmp_dir}/sockets/puma.sock"
pidfile "#{tmp_dir}/pids/server.pid"
state_path "#{tmp_dir}/pids/puma.state"

我的环境是:

OS: Ubtuntu 20.04LTS
Ruby: 2.7.2
Rails: 6.0

希望有人能帮帮我,谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    您使用的是 puma 5.X 吗?然后为了使用 systemd/upstart/a 进程管理器而取消了去魔化

    https://github.com/puma/puma/pull/2170

    还有变更日志: https://github.com/puma/puma/blob/master/History.md#500--2020-09-17 Daemonization has been removed without replacement.

    【讨论】:

      【解决方案2】:

      正如上面nuaky 的回答。 puma 从 5.x 版本开始删除了daemonize,并且不再提供其他功能。

      所以我使用linux命令nohup来运行puma作为打击:

      $ nohup puma > /tmp/null 2>&1 &
      

      所以,我希望你能和我一起学习。

      【讨论】:

        【解决方案3】:

        如果您使用的是 puma > 5.0

        Daemonization 已经去掉,没有替换,供参考click here

        您也可以使用puma-daemon

        Gemfile

        gem 'puma-daemon', require: false
        gem 'puma',  '~> 5'
         
        

        /config/puma.rb

        require 'puma/daemon'
        daemonize
        

        【讨论】:

          猜你喜欢
          • 2012-10-14
          • 1970-01-01
          • 2014-07-06
          • 1970-01-01
          • 2020-02-24
          • 1970-01-01
          • 1970-01-01
          • 2017-01-26
          相关资源
          最近更新 更多