2012-01-26 72 views
0

我在deploy.rb以下任务帽部署创建重复独角兽

namespace :unicorn do 
    desc "stop unicorn" 
    task :stop, :roles => :app, :except => { :no_release => true } do 
    run "#{try_sudo} kill `cat #{unicorn_pid}`" 
    end 
    desc "start unicorn" 
    task :start, :roles => :app, :except => { :no_release => true } do 
    run "cd #{current_path} && #{try_sudo} unicorn -C#{current_path}/config/unicorn.rb -E #{rails_env} -D" 
    end 
    task :reload, :roles => :app, :except => { :no_release => true } do 
    run "#{try_sudo} kill -s USR2 `cat #{unicorn_pid}`" 
    end 

    after "deploy:restart", "unicorn:reload" 
end 

当我运行麒麟:启动麒麟:重新从我的机器一切任务看起来不错的服务器上:

$ ps aux | grep unicorn 
myuser 8196 77.9 12.2 81020 62748 ?  Sl 19:18 0:14 unicorn master -c /home/myuser/www/myapp/current/config/unicorn.rb -E production -D                      
myuser 8216 0.0 11.5 81020 59232 ?  Sl 19:18 0:00 unicorn worker[0] -c /home/myuser/www/myapp/current/config/unicorn.rb -E production -D 

然而,当我运行一个完整的帽部署我得到麒麟服务器,它混淆了地狱邻多个实例ut的nginx。

$ ps aux | grep unicorn 
myuser 8196 4.4 12.2 81020 62764 ?  Sl 19:18 0:14 unicorn master (old) -c /home/myuser/www/myapp/current/config/unicorn.rb -E production -D                     
myuser 8216 1.1 13.2 87868 67764 ?  Sl 19:18 0:03 unicorn worker[0] -c /home/myuser/www/myapp/current/config/unicorn.rb -E production -D                      
myuser 8362 5.8 12.8 83448 65408 ?  Sl 19:19 0:16 unicorn master -c /home/myuser/www/myapp/current/config/unicorn.rb -E production -D                      
myuser 8385 0.0 12.1 83712 61980 ?  Sl 19:19 0:00 unicorn worker[0] -c /home/myuser/www/myapp/current/config/unicorn.rb -E production -D 

我不知道为什么麒麟:重装上部署旋转起来,这些重复的实例。显然它并没有停止以前的主人/工人。我必须运行麒麟:停止任务两次,然后麒麟:再次启动

其他人遇到纠正问题到这一点?我一直在捅它几个小时没有任何运气

+0

好吧,我刚刚注意到一些可疑的东西。当我运行重新加载任务时,另一个进程被添加到组合中(并且我的pid文件被更新) 为了清晰起见,您可以在这里查看它:** http://pastie.textmate.org/3258997** 当我运行**独角兽时,这个过程不存在:开始**,只有**独角兽:重新加载**。我相信这是因为pid文件改变并且kill命令不能再关闭主麒麟的罪魁祸首。 该死的我好亲近!可能只是睡在这一个。 –

回答

0

所以它看起来像这个问题是一个错误的独角兽安装。我毁掉了我的宝石并重新磨合,现在一切都很美好。独角兽的版本是一样的,所以它仍然有点神秘,但至少现在正在工作