# File lib/foreman_maintain/utils/service/systemd.rb, line 5 def initialize(name, priority, options = {}) super @sys = SystemHelpers.new @instance_parent_unit = options.fetch(:instance_parent_unit, nil) end
# File lib/foreman_maintain/utils/service/systemd.rb, line 11 def command(action, options = {}) do_wait = options.fetch(:wait, true) # wait for service to start all = @options.fetch(:all, false) skip_enablement = @options.fetch(:skip_enablement, false) if skip_enablement && %w[enable disable].include?(action) return skip_enablement_message(action, @name) end if do_wait && File.exist?('/usr/sbin/service-wait') "service-wait #{@name} #{action}" else cmd = "systemctl #{action} #{@name}" cmd += ' --all' if all cmd end end
# File lib/foreman_maintain/utils/service/systemd.rb, line 44 def disable execute('disable', :wait => false) end
# File lib/foreman_maintain/utils/service/systemd.rb, line 40 def enable execute('enable', :wait => false) end
# File lib/foreman_maintain/utils/service/systemd.rb, line 61 def enabled? if @sys.systemd_installed? service_enabled_status == 'enabled' end end
# File lib/foreman_maintain/utils/service/systemd.rb, line 52 def exist? if @sys.systemd_installed? systemd = service_enabled_status systemd == 'enabled' || systemd == 'disabled' else File.exist?("/etc/init.d/#{@name}") end end
# File lib/foreman_maintain/utils/service/systemd.rb, line 48 def running? status.first == 0 end
# File lib/foreman_maintain/utils/service/systemd.rb, line 32 def start execute('start') end
# File lib/foreman_maintain/utils/service/systemd.rb, line 28 def status execute('status') end
# File lib/foreman_maintain/utils/service/systemd.rb, line 36 def stop execute('stop') end
# File lib/foreman_maintain/utils/service/systemd.rb, line 69 def execute(action, options = {}) @sys.execute_with_status(command(action, options)) end
# File lib/foreman_maintain/utils/service/systemd.rb, line 73 def service_enabled_status @sys.execute("systemctl is-enabled #{@name} 2>&1 | tail -1").strip end
# File lib/foreman_maintain/utils/service/systemd.rb, line 77 def skip_enablement_message(action, name) # Enable and disable does not work well with globs since they treat them literally. # We are skipping the pulpcore-workers@* for these actions until they are configured in # a more managable way with systemd # rubocop:disable Layout/IndentAssignment msg = " \nWARNING: Skipping #{action} for #{name} as there are a variable amount of services to manage and this command will not respond to glob operators. These services have been configured by the installer and it is recommended to keep them enabled to prevent misconfiguration.\n " # rubocop:enable Layout/IndentAssignment puts msg end