ruby-on-rails - 找不到 Capistrano passenger-config restart-app 命令

标签 ruby-on-rails ruby ubuntu passenger capistrano3

在使用 Capistrano 的部署过程中,我遇到了重新启动 Rails 应用程序的问题。这是问题代码的踪迹:

INFO [e14478ef] Running /usr/bin/env rvmsudo passenger-config restart-app /var/www/appname/staging/ --ignore-app-not-running as deploy@xxx.xxx.xxx.xx
DEBUG [e14478ef] Command: rvmsudo passenger-config restart-app
DEBUG [e14478ef]        bash: rvmsudo: command not found

我几乎可以肯定这个问题是由执行命令的环境 ($BASH_ENV) 引起的,但我不确定如何解决这个问题。当我从命令行手动执行相同的命令时,一切正常。我的应用正在使用:

  • ruby (2.2.0)
  • rails (4.2.0)
  • 卡皮斯特拉诺 (3.4.0)
  • Capistrano 乘客 (0.0.4)
  • Capistrano-rails (1.1.2)
  • Capistrano-rvm (0.1.2)
  • 乘客 (5.0.6)

请注意:我已经能够通过覆盖 passenger:restart 任务并使用旧的 touch tmp/restart.txt 方法来重新启动应用程序。但是,我真的很想知道如何让默认的重启方法正常工作。

更新:我能够通过用以下代码替换默认重启任务来规避问题:

desc 'Restart your Passenger application - temporary fix'  
task :restart do  
  on roles(:app) do  
    sudo "passenger-config restart-app #{fetch(:deploy_to)}"  
  end  
end

我仍然对学习如何在不覆盖默认任务的情况下重启应用程序很感兴趣,但我已经为那些可能陷入类似情况的人添加了上面的代码。

(来源:https://github.com/capistrano/passenger/issues/9#issuecomment-92685064)

最佳答案

如果你得到一个命令 not found for rvmsudo,可能是因为你 don't have rvmsudo installed .

关于ruby-on-rails - 找不到 Capistrano passenger-config restart-app 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29567970/

相关文章:

mysql - rake 中止! StandardError : An error has occurred, 所有后续迁移均已取消:

ruby-on-rails - Rails 验证虚拟属性

ruby-on-rails - 跨 Controller 抽象 before_actions 的优雅方式?

php - 从命令行运行 Gearman PHP 的段错误

linux - 使用 'sudo apt-get install build-essentials'

ruby-on-rails - 如何在 ruby​​ 中的特定条件后结束每个循环

ruby-on-rails - rails 4 activerecord TypeError nil 不是一个符号

ruby-on-rails - 葡萄救援 Grape::Exceptions::ValidationErrors 不起作用

linux - 在另一个文件夹中时在 linux 中编译库

ruby-on-rails - 不允许的参数错误