以下链接到我的独角兽的init脚本。 https://gist.github.com/1466775

重启命令从来没有对我有用。 我在每次部署后使用升级来重启unicorn。 但是每当有新的宝石被添加等重大变化时,升级都不会起作用。 最近,我用airbrake替换了hoptoad gem,并且错误地说'未初始化的恒定Airbrake(NameError)'。 但当我停下来再次开始独角兽时,它运作良好。 问题出在init脚本或其不同的问题上吗?

谢谢。

===============>>#1 票数:12

根据您的init脚本,“/ bin / init.d / unicorn restart”将HUP信号发送到unicorn主进程

------裁剪

restart|reload)
    sig HUP && echo reloaded OK && exit 0
    echo >&2 "Couldn't reload, starting '$CMD' instead"
    su - $USER -c "$CMD"

-----裁剪

这就是HUP对独角兽进程的作用:

重新加载配置文件并优雅地重新启动所有工作程序。 如果“preload_app”指令为false(默认值),则工作人员还会在重新启动时获取任何应用程序代码更改。 如果“preload_app”为true,则应用程序代码更改将不起作用。

您正在寻找的是USR2信号,您的独角兽升级参数已经在进行!

USR2信号重新执行正在运行的二进制文件。 一旦确认孩子已启动并正在运行,应将单独的QUIT发送到原始流程。

===============>>#2 票数:10

我有一个非常相似的问题,终于找到了解决方案

我之前查看了日志,但显然没有看到(Bundler::GemfileNotFound)错误。 事实证明,对早期版本有旧的引用,一旦gem文件发生变化,新的master会无声地失败。 尾巴-f你的独角兽日志,看看会发生什么。 我的问题都是根据我的unicorn.rb中的以下链接修复的

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

===============>>#3 票数:2

我有同样的问题,但我使用的是基于每个用户安装的rbenv。 我使用了这个init脚本

我发现自从我的rbenv按用户安装后,我需要稍微更改一下:

CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"

有了这个:

CMD="cd $APP_ROOT; ~/.rbenv/bin/rbenv exec bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"

希望它能帮到你!

PS或其他人,因为这是一个老问题=)

===============>>#4 票数:0

我通过更改我的unicorn init.d脚本来修复此问题

CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E staging"

对此:

CMD="cd $APP_ROOT; BUNDLE_GEMFILE=$APP_ROOT/Gemfile bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E staging"

这似乎指向每个新版本上的新bundle gem文件。 这个合并请求中获取灵感

  ask by bikashp translate from so

未解决问题?本站智能推荐:

1回复

独角兽零停机时间不起作用

我正在使用capistrano3。尽管-USR2信号似乎无法重新加载应用程序,但独角兽会重启。 当我运行cap production deploy麒麟成功重启,但似乎没有重新加载应用程序。 用USR2重新启动Unicorn似乎不会重新加载production.rb设置 -对我不起
2回复

rvmsudo unicorn_rails -c config / unicorn / production.rb -D --env生产不起作用

我已经为生产服务器安装了新的ec2-instance 当我在当前文件夹中尝试以下命令时 请让我知道如何启动在端口80运行的生产服务器。 提前致谢
3回复

Ubuntu:'unicorn_init.sh start'有效,但'service unicorn_init start'不起作用

我在Ubuntu 12.04服务器上安装了nginx和unicorn。 一切正常,网站,数据库,独角兽...好。 所以我试图确保重启后,nginx和unicorn启动。 我为我的独角兽进程设置了update-rc.d,但是在重启后它没有启动/工作。 我怀疑它与ubuntu使用“服务”而不
1回复

monit和unicorn restart命令在Rails 5.2应用程序中不起作用

我将Monit配置为监视独角兽,并在内存超出或cpu增加到某个限制以上时重新启动它, 无论何时发生,monit都不会重新启动unicorn,这是我在monit日志文件中找到的日志 这是我在/etc/monit/conf.d/下的/etc/monit/conf.d/配置 当发
1回复

Unicorn重启错误

当我试图重新启动我的独角兽时,它会抛出以下错误 无法重新加载,启动'cd / var / www / myapp; 捆绑exec unicorn -D -c /var/www/myapp/config/unicorn.rb -E production'而不是/var/ww
1回复

Rails i18n如果我使用unicorn和nginx作为应用程序服务器不起作用

当我使用默认的WEBrick服务器运行我的应用程序,并从子域设置区域设置时,i18n完美地适用于“ en”和“ ja”。 但是,当我使用Nginx和Unicorn运行我的应用程序时,i18n无法像在WEBrick中那样工作。 我写下面的代码来设置子域的语言环境; 我在这里想念什
3回复

如何手动重启unicorn

我不确定当我运行cap deploy时unicorn正在重新启动,因为应用程序中没有显示某些更改,因此我想在远程服务器上手动重启unicorn。 我已经导航到etc/init.d并查看unicorn_myapp的列表,但它不是一个目录(即我无法进入它)。 根据我的deploy.rb文件中的代
1回复

heroku独角兽超时在下载文件时不起作用

我正在与Unicorn一起在Heroku上运行Rails 4应用程序。 这个应用程式会建立一个相当大的xls档案 为了给它足够的时间,我通过config / unicorn.rb增加了超时时间: 超时240 当我运行生成xls文件的页面时,此方法不起作用,3001ms之后
1回复

如何使用Unicorn进行滚动重启?

假设我对Rails应用程序做了一些更改,例如更改html布局。 如何使用Unicorn进行滚动重启? 实际上,一个人想为最新版本的Rails应用程序启动独角兽进程(或代替工人?),然后将流量从旧的独角兽进程/工人原子地切换到新的。 从Google搜索中,我无法完全确切地说明如何执行此操作以
1回复

Unicorn:启动,停止和重启Centos 6

我刚刚设置了nginx和独角兽。 我这样开始独角兽: 我已经尝试了各种命令来停止独角兽,但没有一个能够工作。 我通常只是重新启动服务器并再次启动独角兽,但这非常烦人。 编辑 unicorn.rb文件(/ var / www / Web / config /): d