如果我想容忍部署后手动停止和启动独角兽的停机时间,该应用程序部署良好。但是,我想使用零停机独角兽设置,但它不起作用,因为启动的新独角兽进程正在查看旧的部署发布路径。deploy.rb 中没有什么特别的,简单的 cap 重启:
desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
run "cd #{current_path}; #{try_sudo} kill -s USR2 `cat /var/www/appname/shared/pids/unicorn.pid`"
end
我知道它正在查看错误的目录,因为如果视图没有更改,并且如果我设置keep_releases
为 1 或 2,则 unicorn 日志将显示错误,因为它尝试启动的目录已被删除:
/var/www/appname/shared/bundle/ruby/1.9.1/gems/unicorn-4.4.0/lib/unicorn/http_server.rb:425:in `chdir': No such file or directory - /var/www/appname/releases/20130330104246 (Errno::ENOENT)
几个星期以来,我一直在尝试打开和关闭它。非常感谢您为这项工作提供任何帮助!