应用程序尝试加载旧版本

坎沙里波娃

当我尝试将新版本的应用程序部署到服务器上时,部署后,我的域上只有旧版本的应用程序(经过多次“ cap部署”后,它始终是相同的),但是服务器上的当前目录具有文件的最新版本。
这是我的deploy.rb

require 'rvm/capistrano'
require 'bundler/capistrano'
require 'whenever/capistrano' 

set :port, 123456
set :rvm_ruby_string, '1.9.3'
set :rvm_type, :user
set :user, "username"

ssh_options[:forward_agent] = true
set :deploy_via, :remote_cache
default_run_options[:pty] = true
set :application, "app_name"
set :rails_env, "production"
server "server.com", :app, :web, :db, primary: true
set :deploy_to, "/home/user/#{application}"
set :use_sudo, false
set :unicorn_conf, "#{deploy_to}/current/config/unicorn.rb"
set :unicorn_pid, "#{deploy_to}/shared/pids/unicorn.pid"
set :keep_releases, 3
set :scm, :git
set :repository,  "rep_name"
set :whenever_command, "bundle exec whenever"
set :branch, "master"
load 'deploy/assets'

before "deploy:setup", "db:configure"
before  "deploy:assets:precompile", "db:symlink"

namespace :db do
    desc "Create database yaml in shared path"
    ...   
    desc "Make symlink for database yaml"
    ...
end

namespace :deploy do
    task :create_release_dir, :except => {:no_release => true} do
        run "mkdir -p #{fetch :releases_path}"
    end
    task :restart do
        run "if [ -f #{unicorn_pid} ] && [ -e /proc/$(cat #{unicorn_pid}) ]; then kill -USR2 `cat #{unicorn_pid}`; else cd #{deploy_to}/current && bundle exec unicorn_rails -c #{unicorn_conf} -E #{rails_env} -D; fi"
    end
    task :start do
        run "bundle exec unicorn_rails -c #{unicorn_conf} -E #{rails_env} -D"
    end
    task :stop do
        run "if [ -f #{unicorn_pid} ] && [ -e /proc/$(cat #{unicorn_pid}) ]; then kill -QUIT `cat #{unicorn_pid}`; fi"
    end
end


这是我的unicorn.rb

deploy_to  = "/home/user/app_name"
rails_root = "#{deploy_to}/current"
pid_file   = "#{deploy_to}/shared/pids/unicorn.pid"
socket_file= "#{deploy_to}/shared/unicorn.sock"
log_file   = "#{rails_root}/log/unicorn.log"
err_log    = "#{rails_root}/log/unicorn_error.log"
old_pid    = pid_file + '.oldbin'

timeout 30
worker_processes 4 
listen socket_file, :backlog => 1024
pid pid_file
stderr_path err_log
stdout_path log_file

preload_app true 

GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=) 

before_exec do |server|
  ENV["BUNDLE_GEMFILE"] = "#{rails_root}/Gemfile"
end

before_fork do |server, worker|
  defined?(ActiveRecord::Base) and
  ActiveRecord::Base.connection.disconnect!

  if File.exists?(old_pid) && server.pid != old_pid
    begin
      Process.kill("QUIT", File.read(old_pid).to_i)
    rescue Errno::ENOENT, Errno::ESRCH
    end
  end
end

after_fork do |server, worker|
  defined?(ActiveRecord::Base) and
  ActiveRecord::Base.establish_connection
end
尼古拉

当无法正确重启独角兽时,就会发生这种情况。尝试停止服务器,然后启动服务器。您应该在启动时出错,然后检查unicorn.errror.log文件以获取错误信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用新的应用程序图标安装新版本的应用程序后,应用程序显示旧版本的应用程序图标

来自分类Dev

chromecast加载我的接收器应用的旧版本

来自分类Dev

Openshift应用程序尝试加载已删除的类

来自分类Dev

使旧版本的应用程序免费并上传新的付费版本-iTunes

来自分类Dev

ASP.NET MVC尝试加载旧版本的Owin程序集

来自分类Dev

对旧版本的iPhone禁用iPhone应用程序

来自分类Dev

在旧版本的android上启动后,cordova / ionic应用程序崩溃

来自分类Dev

Android模拟器具有旧版本的应用程序

来自分类Dev

Visual Studio 2015始终发布我的应用程序的旧版本

来自分类Dev

如何在不替换旧版本的情况下安装我的应用程序的新“版本”?

来自分类Dev

应用程序的旧版本如何应对较新的核心数据模型?

来自分类Dev

更新iPhone应用程序删除了旧版本数据

来自分类Dev

保持应用程序旧版本与Azure Service Fabric中的较新版本并排运行

来自分类Dev

通过Heroku部署Rails应用程序使用旧版本的Node

来自分类Dev

如何对旧版本的库运行.NET Core应用程序

来自分类Dev

如何解决Flutter警告:您的Flutter应用程序是使用旧版本创建的

来自分类Dev

S3静态托管仍显示旧版本的应用程序

来自分类Dev

iTunes Connect旧版本的应用程序

来自分类Dev

使旧版本的应用程序免费并上传新的付费版本-iTunes

来自分类Dev

ASP.NET MVC尝试加载旧版本的Owin程序集

来自分类Dev

禁用旧版本iPhone的iPhone应用程序

来自分类Dev

有没有办法安装Windows(通用)应用程序的旧版本?

来自分类Dev

通过处置旧版本重新启动应用程序

来自分类Dev

更新iPhone应用程序删除了旧版本数据

来自分类Dev

尝试加载通知时,应用程序崩溃

来自分类Dev

更新我的应用程序的旧版本

来自分类Dev

如何停止在浏览器中缓存 Angular 应用程序(旧版本)

来自分类Dev

如何在 Flutter 中构建 apk 创建旧版本的应用程序

来自分类Dev

重新编译后无法从旧版本的应用程序加载文件

Related 相关文章

  1. 1

    使用新的应用程序图标安装新版本的应用程序后,应用程序显示旧版本的应用程序图标

  2. 2

    chromecast加载我的接收器应用的旧版本

  3. 3

    Openshift应用程序尝试加载已删除的类

  4. 4

    使旧版本的应用程序免费并上传新的付费版本-iTunes

  5. 5

    ASP.NET MVC尝试加载旧版本的Owin程序集

  6. 6

    对旧版本的iPhone禁用iPhone应用程序

  7. 7

    在旧版本的android上启动后,cordova / ionic应用程序崩溃

  8. 8

    Android模拟器具有旧版本的应用程序

  9. 9

    Visual Studio 2015始终发布我的应用程序的旧版本

  10. 10

    如何在不替换旧版本的情况下安装我的应用程序的新“版本”?

  11. 11

    应用程序的旧版本如何应对较新的核心数据模型?

  12. 12

    更新iPhone应用程序删除了旧版本数据

  13. 13

    保持应用程序旧版本与Azure Service Fabric中的较新版本并排运行

  14. 14

    通过Heroku部署Rails应用程序使用旧版本的Node

  15. 15

    如何对旧版本的库运行.NET Core应用程序

  16. 16

    如何解决Flutter警告:您的Flutter应用程序是使用旧版本创建的

  17. 17

    S3静态托管仍显示旧版本的应用程序

  18. 18

    iTunes Connect旧版本的应用程序

  19. 19

    使旧版本的应用程序免费并上传新的付费版本-iTunes

  20. 20

    ASP.NET MVC尝试加载旧版本的Owin程序集

  21. 21

    禁用旧版本iPhone的iPhone应用程序

  22. 22

    有没有办法安装Windows(通用)应用程序的旧版本?

  23. 23

    通过处置旧版本重新启动应用程序

  24. 24

    更新iPhone应用程序删除了旧版本数据

  25. 25

    尝试加载通知时,应用程序崩溃

  26. 26

    更新我的应用程序的旧版本

  27. 27

    如何停止在浏览器中缓存 Angular 应用程序(旧版本)

  28. 28

    如何在 Flutter 中构建 apk 创建旧版本的应用程序

  29. 29

    重新编译后无法从旧版本的应用程序加载文件

热门标签

归档