【问题标题】:Unicorn failing to spawn workers on USR2 signal独角兽未能在 USR2 信号上产生工人
【发布时间】:2012-12-11 16:44:28
【问题描述】:

我正在向主进程发送 USR2 信号,以实现与独角兽的零停机部署。老主人死后,出现如下错误:

adding listener failed addr=/path/to/unix_socket (in use)

unicorn-4.3.1/lib/unicorn/socket_helper.rb:140:in `initialize':
Address already in use - /path/to/unix_socket (Errno::EADDRINUSE)

旧主人在 unicorn.rb 配置文件的 before_fork 块中被杀死。该进程通过不带守护程序 (-D) 选项的 upstart 启动。 关于发生了什么的任何想法?

【问题讨论】:

  • Cam 你从你的 unicorn.rb 分享了 before_fork 块?

标签: ruby-on-rails unicorn


【解决方案1】:

好吧,如果您希望能够进行零停机部署,那么您必须以守护模式 (-D) 运行。我在我的新贵脚本中更改了一些东西,现在它可以正常工作了:

setuid username
pre-start exec unicorn_rails -E production -c /path/to/app/config/unicorn.rb -D
post-stop exec kill cat `/path/to/app/tmp/pids/unicorn.pid`
respawn

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多