とーますメモ

Ruby on Rails / Goなどの学習メモ

【Capistrano】puma起動後に、systemdのpuma.serviceを起動させる方法

以下のタスクをcapistranoのdeploy.rmに追加するだけ。
puma.serviceはすでに/etc/systemd/system/puma.serviceに存在する前提。

namespace :puma do
  after :start, :start_systemd_puma_service do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
      within release_path do
        execute "sudo systemctl daemon-reload"
        execute "sudo systemctl restart puma"
      end
    end
  end
end

もしくはpuma:startを上書きしてもよいか。。
こちらは試してない。

Rake::Task["puma:start"].clear

[参考]
deployment - Capistrano and systemd integration - Stack Overflow
rake taskを上書きする