开发者社区> 问答> 正文

Unicorn 怎才做才能正确的无缝重启?

目前我的用法是:

$ cat cat tmp/pids/unicorn.pid
25361
$ kill -USR2 25361

但是,我发现这样做了以后,进程列表会出现两份,新的是启动上来了,但是老的进程依然存在,除非我再 kill -QUIT 25361 这个进程

我这个方法不知道对不对

展开
收起
心有灵_夕 2019-12-29 00:33:58 918 0
1 条回答
写回答
取消 提交回答
  • 需要改下配置:

    如果用USR2信号重启服务,必须要配置这一步, 用来退出老的master

    请参考:

    http://unicorn.bogomips.org/SIGNALS.html

    https://github.com/blog/517-unicorn

    before_fork do |server, worker|
      old_pid = "#{shared_path}/pids/unicorn.pid.oldbin"
      if File.exists?(old_pid) && server.pid != old_pid
        begin
          Process.kill("QUIT", File.read(old_pid).to_i)
        rescue Errno::ENOENT, Errno::ESRCH
          puts "Send 'QUIT' signal to unicorn error!"
        end
      end
    end
    
    2019-12-29 00:34:13
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
ANSIBLE在生产环境中的实践 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载