我正在尝试使用Recap与Capistrano一起部署我的Rails 4应用。在docs中,它说:
ruby配方[...]包括工头支持,启动和重新启动Procfile中定义的流程。
我的应用需要在每次部署时重新启动两个进程:
我已将gem 'foreman'
添加到我的Gemfile中,我对Procfile的尝试是:
# Procfile
web: sudo service nginx restart
worker: bin/delayed_job restart
但它显然是错误的,因为在部署时没有重新启动。
正确的Procfile是什么样的?
或者,如果这只是首先采取的错误方法,那么更好的方法是确保在每次部署时重新启动这些流程?
答案 0 :(得分:0)
我最终放弃了领班,而是使用以下代码。
(因为我作为不同的用户在服务器上启动了delayed_job,而且app用户没有权限阻止其他用户进程,我必须先在服务器上手动停止delayed_job。)
# in Capfile
namespace :passenger do
task :restart do
run "touch /home/intouchsys/app/tmp/restart.txt"
end
end
namespace :delayed_job do
task :restart do
as_app "bin/delayed_job restart"
end
end
after "deploy", "passenger:restart"
after "deploy", "delayed_job:restart"