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
我不知道爲什麼麒麟:重裝上部署旋轉起來,這些重複的實例。顯然它並沒有停止以前的主人/工人。我必須運行麒麟:停止任務兩次,然後麒麟:再次啓動到
其他人遇到糾正問題到這一點?我一直在捅它幾個小時沒有任何運氣
好吧,我剛剛注意到一些可疑的東西。當我運行重新加載任務時,另一個進程被添加到組合中(並且我的pid文件被更新) 爲了清晰起見,您可以在這裏查看它:** http://pastie.textmate.org/3258997** 當我運行**獨角獸時,這個過程不存在:開始**,只有**獨角獸:重新加載**。我相信這是因爲pid文件改變並且kill命令不能再關閉主麒麟的罪魁禍首。 該死的我好親近!可能只是睡在這一個。 –