Sha256: e3b308512a236393280a70602546eabadad307e89691680b1d501cc13ad47e12
Contents?: true
Size: 1.4 KB
Versions: 2
Compression:
Stored size: 1.4 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
tomo-plugin-sidekiq-1.0.1 | lib/tomo/plugin/sidekiq/tasks.rb |
tomo-plugin-sidekiq-1.0.0 | lib/tomo/plugin/sidekiq/tasks.rb |