独角兽& nginx错误

时间:2013-03-10 21:43:26

标签: ruby-on-rails nginx unicorn vagrant

vagrant@lucid32:/vagrant$ bundle exec unicorn_rails -c config/unicorn.rb -D -d
{:unicorn_options=>{:listeners=>[], :config_file=>"config/unicorn.rb"},
 :app=>
  #<Proc:0xa1a6ef4@/home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/bin/unicorn_rails:135 (lambda)>,
 :daemonize=>true}
Exception `Errno::EEXIST' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/fileutils.rb:247 - File exists - tmp/cache
Exception `Errno::EEXIST' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/fileutils.rb:247 - File exists - tmp/pids
Exception `Errno::EEXIST' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/fileutils.rb:247 - File exists - tmp/sessions
Exception `Errno::EEXIST' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/fileutils.rb:247 - File exists - tmp/sockets
Exception `EOFError' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/launcher.rb:46 - end of file reached
master failed to start, check stderr log for details

不幸的是我不知道如何检查stderr日志并且没有找到任何相关信息。

这是配置文件:

working_directory "/vagrant"
pid "/vagrant/tmp/pids/unicorn.pid"
stderr_path "/vagrant/log/unicorn.log"
stdout_path "/vagrant/log/unicorn.log"

listen "/tmp/unicorn.todo.sock"
worker_processes 2
timeout 30

这是nginx.conf文件

upstream unicorn {
  server unix:/tmp/unicorn.todo.sock fail_timeout=0;
}


server {
  listen 80 default;
  # server_name example.com;
  root /vagrant/public;
  try_files $uri/index.html $uri @unicorn;
  location @unicorn {
      proxy_pass  http://unicorn;
  }

  error_page 500 502 503 504 /500.html;
}

现在的问题是没有创建/ tmp目录。所以我创建它,我得到相同的错误,然后我删除它,我得到相同的错误。现在我陷入了无限循环。

我很感激有关ho的任何帮助,或者至少如何阅读错误日志。

编辑:我能够找到stderr文件:

/home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `rename': Text file busy - (/vagrant/tmp/pids/0.2278780536507904.2128, /vagrant/tmp/pids/unicorn.pid) (Errno::ETXTBSY)
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `pid='
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:137:in `start'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/bin/unicorn:126:in `<top (required)>'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `load'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `<main>'
/home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `rename': Text file busy - (/vagrant/tmp/pids/0.8313958669768073.2187, /vagrant/tmp/pids/unicorn.pid) (Errno::ETXTBSY)
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `pid='
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:137:in `start'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/bin/unicorn:126:in `<top (required)>'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `load'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `<main>'
/home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `rename': Text file busy - (/vagrant/tmp/pids/0.9130633695817217.2190, /vagrant/tmp/pids/unicorn.pid) (Errno::ETXTBSY)
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `pid='
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:137:in `start'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/bin/unicorn:126:in `<top (required)>'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `load'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `<main>'
Exception `Errno::ENOENT' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:683 - No such file or directory - /vagrant/tmp/pids/unicorn.pid
Exception `Errno::ETXTBSY' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207 - Text file busy - (/vagrant/tmp/pids/0.59100125503182.2237, /vagrant/tmp/pids/unicorn.pid)
/home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `rename': Text file busy - (/vagrant/tmp/pids/0.59100125503182.2237, /vagrant/tmp/pids/unicorn.pid) (Errno::ETXTBSY)
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `pid='
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:137:in `start'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/bin/unicorn:126:in `<top (required)>'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `load'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `<main>'
/home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `rename': Text file busy - (/vagrant/tmp/pids/0.4331021743697998.2271, /vagrant/tmp/pids/unicorn.pid) (Errno::ETXTBSY)
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:207:in `pid='
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:137:in `start'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/bin/unicorn:126:in `<top (required)>'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `load'
        from /home/vagrant/.rbenv/versions/1.9.3-p392/bin/unicorn:23:in `<main>'
Exception `Errno::ENOENT' at /home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:683 - No such file or directory - /vagrant/tmp/pids/unicorn.pid

2 个答案:

答案 0 :(得分:1)

Unicorn进程在后台运行(-d), 在终端上输入以下命令

ps aux | grep unicorn

并杀死正在运行的独角兽进程然后再次启动独角兽。

答案 1 :(得分:0)

我遇到了同样的问题(Text file busy错误),也是从Vagrant VM运行的。 @ destiel的评论帮助我解决了问题:显然这是因为从Vagrant共享文件夹中运行railsunicorn。复制到虚拟驱动器后,它工作正常。我在Windows 8主机上运行,​​以防万一。