独角兽在开始时冻结

时间:2015-05-16 23:17:40

标签: ruby-on-rails nginx unicorn aws-opsworks

我正在进行一些故障排除,以找出我的网站无法加载的原因。

我正在使用Amazon OopsWorks。我有一台运行Rails 4.2.0和Ruby 2.2.0的Amazon Linux服务器。我使用的是Nginx和Unicorn。我已经验证了Nginx正在运行。当我尝试用bundle exec unicorn -E production -c /srv/www/likeminds/current/config/unicorn.rb启动Unicorn时,我没有收到错误。实际上,我没有得到任何东西。这就是问题所在,没有任何反应。

Unicorn发生了什么?它似乎在开始时冻结。在此先感谢您的帮助。

以下是我服务器上运行的内容。

 2278 aws       20   0  323m  69m 4212 S  0.7  7.0   0:00.99 opsworks-agent     
    1 root      20   0 19596 1608 1292 S  0.0  0.2   0:00.55 init               
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd           
    3 root      20   0     0    0    0 S  0.0  0.0   0:00.81 ksoftirqd/0        
    5 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/0:0H       
    6 root      20   0     0    0    0 S  0.0  0.0   0:00.08 kworker/u30:0      
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.54 rcu_sched          
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 rcu_bh             
    9 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0        
   10 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 khelper            
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kdevtmpfs          
   12 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 netns              
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kworker/u30:1      
   19 root      20   0     0    0    0 S  0.0  0.0   0:00.00 xenwatch           
   20 root      20   0     0    0    0 S  0.0  0.0   0:00.00 xenbus             
   21 root      20   0     0    0    0 S  0.0  0.0   0:00.09 kworker/0:1        
  115 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 writeback   

更新我的Unicorn.rb文件不起作用。现在EC2输出

/home/deploy/.bundler/likeminds/ruby/2.2.0/gems/unicorn-4.9.0/lib/unicorn/configurator.rb:657:in `parse_rackup_file': rackup file (config.ru) not readable (ArgumentError)

以下是导致Unicorn冻结的Unicorn.rb

# Set the working application directory
# working_directory "/path/to/your/app"
working_directory "/srv/www/likeminds/current/"

# Unicorn PID file location
# pid "/path/to/pids/unicorn.pid"
pid "/srv/www/likeminds/shared/pids/unicorn.pid"

# Path to logs
# stderr_path "/path/to/log/unicorn.log"
# stdout_path "/path/to/log/unicorn.log"
stderr_path "/srv/www/likeminds/shared/log/unicorn.log"
stdout_path "/srv/www/likeminds/shared/log/unicorn.log"

# Unicorn socket
listen "/srv/www/likeminds/shared/sockets/unicorn.likeminds.sock"
listen "/srv/www/likeminds/shared/sockets/unicorn.likeminds.sock"

# Number of processes
# worker_processes 4
worker_processes 2

# Time-out
timeout 30

以下是输出错误但在我的localhost上成功运行的版本。

if ENV["RAILS_ENV"] == "development"
  worker_processes 1
else
  worker_processes 3
end

timeout 30

更新##

更改权限后,我可以启动Unicorn。但是我收到了错误。

E, [2015-05-17T00:21:47.129959 #7004] ERROR -- : reaped #<Process::Status: pid 8943 exit 1> worker=0
I, [2015-05-17T00:21:47.130085 #7004]  INFO -- : worker=0 spawning...
I, [2015-05-17T00:21:47.130878 #8953]  INFO -- : worker=2 spawned pid=8953
I, [2015-05-17T00:21:47.132421 #8953]  INFO -- : Refreshing Gem list
I, [2015-05-17T00:21:47.136806 #8955]  INFO -- : worker=0 spawned pid=8955
I, [2015-05-17T00:21:47.140432 #8955]  INFO -- : Refreshing Gem list
E, [2015-05-17T00:21:50.288644 #8950] ERROR -- : undefined local variable or method `ru' for #<LikeMinds::Apps

1 个答案:

答案 0 :(得分:1)

从命令行手动检查应该显示一些输出。例如,我看到了:

I, [2015-05-16T16:36:12.487217 #63958]  INFO -- : listening on addr=0.0.0.0:8080 fd=9
I, [2015-05-16T16:36:12.487321 #63958]  INFO -- : worker=0 spawning...
I, [2015-05-16T16:36:12.488381 #63958]  INFO -- : master process ready
I, [2015-05-16T16:36:12.489353 #63959]  INFO -- : worker=0 spawned pid=63959
I, [2015-05-16T16:36:12.489799 #63959]  INFO -- : Refreshing Gem list
I, [2015-05-16T16:36:16.198329 #63959]  INFO -- : worker=0 ready

您是否在使用此方法或unicorn.sterr.log中看到了什么?请发布你的独角兽配置文件​​。

解决方案:似乎pid文件路径不能由独角兽进程写入。更改允许进程所有者访问的权限似乎已经奏效。