6

我正在向主进程发送一个 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)

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

4

1 回答 1

2

好吧,事实证明,如果您希望能够进行零停机部署,则必须以守护模式 (-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
于 2012-12-19T01:01:18.747 回答