Я использую Capistrano + Capistrano :: Bundler, после развертывания приложения перезагружаю единорогов с помощью:
after :finished, :reload_unicorns do
on roles(:app) do
execute '/usr/bin/sudo /bin/systemctl reload app.service'
end
end
перезагрузка службы systemd выглядит следующим образом:
ExecStart=/usr/local/bin/bundle exec "unicorn_rails -D -c config/unicorn.conf.rb -E production"
ExecStop=/bin/kill -s SIGQUIT $MAINPID
# USR2 signal will spawn the new master process, the kill signal to the old master should be send from rails
ExecReload=/bin/kill -s SIGUSR2 $MAINPID
он работает нормально и перезагружает приложение без простоев, но когда я обновляю Gemfile, ему требуется перезапуск вместо перезагрузки, может ли capistrano автоматически перезагружаться при изменении Gemfile?