class PoiseService::ServiceProviders::Systemd
Public Class Methods
default_inversion_options(node, resource)
click to toggle source
@api private
Calls superclass method
# File lib/poise_service/service_providers/systemd.rb, line 34 def self.default_inversion_options(node, resource) super.merge({ # Automatically reload systemd on changes. auto_reload: true, # Service restart mode. restart_mode: 'on-failure', }) end
provides_auto?(node, resource)
click to toggle source
@api private
# File lib/poise_service/service_providers/systemd.rb, line 29 def self.provides_auto?(node, resource) service_resource_hints.include?(:systemd) end
Public Instance Methods
pid()
click to toggle source
# File lib/poise_service/service_providers/systemd.rb, line 43 def pid cmd = shell_out(%w{systemctl status} + [new_resource.service_name]) if !cmd.error? && cmd.stdout.include?('Active: active (running)') && md = cmd.stdout.match(/Main PID: (\d+)/) md[1].to_i else nil end end
Private Instance Methods
create_service()
click to toggle source
# File lib/poise_service/service_providers/systemd.rb, line 67 def create_service reloader = systemctl_daemon_reload service_template("/etc/systemd/system/#{new_resource.service_name}.service", 'systemd.service.erb') do notifies :run, reloader, :immediately if options['auto_reload'] variables.update(auto_reload: options['auto_reload'], restart_mode: options['restart_mode']) end end
destroy_service()
click to toggle source
# File lib/poise_service/service_providers/systemd.rb, line 75 def destroy_service reloader = systemctl_daemon_reload file "/etc/systemd/system/#{new_resource.service_name}.service" do action :delete notifies :run, reloader, :immediately if options['auto_reload'] end end
service_resource()
click to toggle source
Calls superclass method
PoiseService::ServiceProviders::Base#service_resource
# File lib/poise_service/service_providers/systemd.rb, line 54 def service_resource super.tap do |r| r.provider(Chef::Provider::Service::Systemd) end end
systemctl_daemon_reload()
click to toggle source
# File lib/poise_service/service_providers/systemd.rb, line 60 def systemctl_daemon_reload execute 'systemctl daemon-reload' do action :nothing user 'root' end end