【发布时间】:2017-04-08 20:52:21
【问题描述】:
我用 capistrano 部署了项目,但是 puma 在服务器重启后没有启动..
我应该这样做 -> cap production puma:start 每次
我试过了:
/etc/init.d/myscript
#!/bin/sh
/etc/init.d/puma_start.sh
puma_start.sh
#!/bin/bash
puma -C /root/project/shared/puma.rb
但是,我有错误
/usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems.rb:270:in `find_spec_for_exe': can't find gem puma (>= 0.a) (Gem::GemNotFoundException)
from /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems.rb:298:in `activate_bin_path'
from /usr/local/rvm/gems/ruby-2.3.3@project/bin/puma:22:in `<main>'
from /usr/local/rvm/gems/ruby-2.3.3@project/bin/ruby_executable_hooks:15:in `eval'
from /usr/local/rvm/gems/ruby-2.3.3@project/bin/ruby_executable_hooks:15:in `<main>'
如果我输入控制台root@host:~# puma -C /root/project/shared/puma.rb 它可以工作,一切正常。
我认为我没有正确的 gem puma 路径
如何在服务器重新启动后执行 puma 自动启动
谢谢你
【问题讨论】:
-
我的启动脚本之一也有类似的问题。这是由于同样的错误,
gem not found。我通过显式传递 rvm gemset 路径并从那里执行 gem 来解决它。像这样,#{HOME_PATH}/.rvm/wrappers/jruby-1.7.13@my_repo/bundle exec rake -
更多研究发现了这个 puma 工具。它可以满足您的需要。 github.com/puma/puma/tree/master/tools/jungle/init.d 它将 puma 作为恶魔服务运行,并且还将在服务器启动时启动
-
好的,我在 '/etc/init.d' 中创建了文件 'puma',在 '/usr/local/bin' 中创建了 'run-puma' 文件,然后将行 - 'CONFIG=/ root/project/shared/puma.rb' 进入 puma 文件 .. 我有 (* Status Puma rack web server puma * --> #!/usr/bin/env is not there ) .. 我不明白我该如何开始(puma -C /root/project/shared/puma.rb)
-
您是否尝试过该文章中给出的确切步骤?
-
是的,但我不明白它如何与我的 rails 应用程序一起使用。我运行 'sudo service puma start',然后看到 '* => Running the Jungle...'。 . 我运行 sudo service puma status ,看到 * Status Puma rack web server puma .. 但是我如何关联我的 Rails 应用程序和 puma?
标签: ruby-on-rails linux capistrano puma start-stop-daemon