红宝石轨道 – 独角兽完全忽略USR2信号

前端之家收集整理的这篇文章主要介绍了红宝石轨道 – 独角兽完全忽略USR2信号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的生产服务器上的独角兽经历了一个非常奇怪的问题.
虽然配置文件规定preload_app为true,但是将USR2发送到主进程并不会产生任何响应,而且似乎独角兽完全忽略了信号.
在另一个发送USR2的服务器上,主进程更改为(old)状态,并成功启动新的主进程.
有问题的服务器正在使用RVM& bundler,所以我假设它有点相关(另一个是香草红宝石).
发送USR2以外的信号(QUIT,HUP)工作正常.
有没有办法跟踪幕后发生的事情? Unicorn的日志文件是完全空的.

解决方法

我怀疑你的问题可能是你的Gemfile已经改变了,但是你没有以允许USR2使用新的Gemfile的方式启动独角兽.因此,当您尝试重新启动应用程序时,它会崩溃.

检查您的/log/unicorn.log以了解可能失败的详细信息.

如果您使用Capistrano,请指定BUNDLE_GEMFILE作为符号链接,例如:

run "cd #{current_path} && BUNDLE_GEMFILE=#{current_path}/Gemfile bundle exec unicorn -c #{config_path} -E #{unicorn_env} -D"

演示了这个Here’s a PR.

猜你在找的Ruby相关文章