地址已经在使用 - bind(2)为178.62.19.65:80(Errno :: EADDRINUSE),如何在port80上重启unicorn

时间:2015-07-11 15:02:06

标签: mysql ruby-on-rails database server unicorn

我对我的数据库做了一些改动,但是当我重新启动rails服务器时没有反映出来。我用

 sudo service unicorn stop

 sudo service unicorn start

Unicorn启动但是当我运行以下代码行时,

 root@moneytree:/home/zhall/zoulfia# rails s -p80 -e 
     production --   binding=moneytree.space

我明白了:

  => Booting Unicorn
   => Rails 4.2.0 application starting in production     
  on http://moneytree.space:80
  => Run `rails server -h` for more startup options
  => Ctrl-C to shutdown server 
  E, [2015-07-11T09:34:29.299617 #30491] ERROR -- 
  : adding listener failed addr=178.62.19.65:80 (in use)
  E, [2015-07-11T09:34:29.300071 #30491] ERROR -- 
  : retrying in 0.5 seconds (4 tries left)
  .........
  ...........
  Exiting
  /usr/local/rvm/gems/ruby-2.2.1/gems
  /unicorn-4.9.0/lib/unicorn/socket_helper.rb:185:in `bind': 
  Address already in use - bind(2) for 178.62.19.65:80 (Errno::EADDRINUSE)

为什么unicorn port80不会刷新?任何帮助都会非常非常受欢迎。

2 个答案:

答案 0 :(得分:1)

我需要做的就是在我的/etc/unicorn.config文件中将'preload_app'设置为'false'。之后,当重新启动独角兽时,会反映对应用程序代码的更改。

答案 1 :(得分:0)

已经在端口80上运行了一个程序。请检查netstat netstat -ntl | grep -w 80。如果您看到LISTEN的行,则该端口已被使用。或者,您可以在不同的端口上运行rails,如下所示:rails s -p 8080 -e production