红宝石轨道 – 独角兽完全忽略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.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...