【问题标题】:Capistrano passenger-config restart-app command not foundCapistrano 乘客配置重启应用命令未找到
【发布时间】:2015-04-10 18:03:57
【问题描述】:

我在使用 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),但我不确定如何解决此问题。当我从命令行手动执行相同的命令时,一切正常。我的应用正在使用:

  • 红宝石 (2.2.0)
  • 导轨 (4.2.0)
  • Capistrano (3.4.0)
  • Capistrano 乘客 (0.0.4)
  • Capistrano-rails (1.1.2)
  • Capistrano-rvm (0.1.2)
  • 客运 (5.0.6)

请注意:我已经能够通过覆盖乘客:重新启动任务并使用旧的 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

【问题讨论】:

    标签: ruby-on-rails ruby ubuntu passenger capistrano3


    【解决方案1】:

    如果您收到未找到rvmsudo 的命令,可能是因为您don't have rvmsudo installed

    【讨论】:

    • rvmsudo 已安装。我认为这个问题涉及执行命令的“shell”,我认为它是非交互式的,因此它没有执行许多命令的必要权限。该线程的最佳答案很好地概述了不同的 shell 环境:stackoverflow.com/questions/216202/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2015-05-30
    相关资源
    最近更新 更多