0
我感動我的Rails應用程序部署從Capistrano的米娜。剩下要做的唯一事情就是編寫一個任務來重新啓動服務器。我已經完成了啓動服務器的部分,但我無法理解如何阻止它。有沒有什麼辦法可以得到在Mina服務器上執行的命令的結果?
當我使用Capistrano的,我有以下任務:
desc 'Stop Unicorn'
task :stop do
on roles(:app) do
if test("[ -f #{fetch(:unicorn_pid)} ]")
execute :kill, capture(:cat, fetch(:unicorn_pid))
end
end
end
這一點,因爲我的理解,首先運行test
命令來確定文件是否存在,然後運行,如果需要kill命令。我明白怎麼做的這一切,除了米娜如何執行服務器上test
功能並獲取其結果用它做什麼。
這裏是我使用的是什麼,現在,
task :restart_server => :environment do
queue "cd #{deploy_to}/current"
if File.exists? unicorn_pid
queue "kill `cat #{unicorn_pid}`"
end
queue "bundle exec unicorn -C#{deploy_to}/#{shared_path}/config/unicorn.rb -E production -D"
end
但這不工作,我想我明白爲什麼(因爲File.exists
字符串在客戶端執行,而不是服務器端)。
那麼,我該怎麼辦?