Sha256: c776aebc141fc35909471534a1a4f383b147c56d163e67210415d5648ea8df15
Contents?: true
Size: 1.35 KB
Versions: 16
Compression:
Stored size: 1.35 KB
Contents
module Tomo::Plugin::Sidekiq class Tasks < Tomo::TaskLibrary SystemdUnit = Struct.new(:name, :template, :path) def setup_systemd linger_must_be_enabled! remote.mkdir_p service.path.dirname remote.write template: service.template, to: service.path remote.run "systemctl --user daemon-reload" remote.run "systemctl", "--user", "enable", service.name end %i[reload restart start stop status].each do |action| define_method(action) do remote.run "systemctl", "--user", action, service.name end end def log remote.attach "journalctl", "-q", raw("--user-unit=#{service.name.shellescape}"), *settings[:run_args] end private def service SystemdUnit.new( settings[:sidekiq_systemd_service], paths.sidekiq_systemd_service_template, paths.sidekiq_systemd_service ) end def linger_must_be_enabled! linger_users = remote.list_files("/var/lib/systemd/linger", raise_on_error: false) return if dry_run? || linger_users.include?(remote.host.user) die <<~ERROR.strip Linger must be enabled for the #{remote.host.user} user in order for sidekiq to stay running in the background via systemd. Run the following command as root: loginctl enable-linger #{remote.host.user} ERROR end end end
Version data entries
16 entries across 16 versions & 1 rubygems