namespace :load do
task :defaults do set :systemd_unit, ->{ fetch :application } set :systemd_use_sudo, false set :systemd_roles, %w(app) end
end
namespace :systemd do
%w(start stop restart enable disable).each do |command| desc "#{command.capitalize} service" task command do on roles fetch :systemd_roles do exec :systemctl, command, fetch(:systemd_unit) end end end desc "Show the status of service" task :status do on roles fetch :systemd_roles do exec :systemctl, :status, fetch(:systemd_unit) end end desc "Reload systemd manager configuration" task "daemon-reload" do on roles fetch :systemd_roles do exec :systemctl, "daemon-reload" end end def exec *args fetch(:systemd_use_sudo) ? sudo(*args) : execute(*args) end
end
after “deploy:published”, “systemd:daemon-reload” after “deploy:finished”, “systemd:restart”