Class: Chef::Platform::ServiceHelpers
- Extended by:
- Mixin::ShellOut, Mixin::Which
- Defined in:
- lib/chef/platform/service_helpers.rb
Constant Summary
Constants included from Mixin::ShellOut
Mixin::ShellOut::DEPRECATED_OPTIONS
Class Method Summary collapse
- .config_for_service(service_name) ⇒ Object
-
.service_resource_providers ⇒ Object
This helper is mostly used to sort out the mess of different linux mechanisms that can be used to start services.
Methods included from Mixin::Which
Methods included from Mixin::ShellOut
run_command_compatible_options, shell_out, shell_out!, shell_out_with_systems_locale, shell_out_with_systems_locale!
Class Method Details
.config_for_service(service_name) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/chef/platform/service_helpers.rb', line 75 def config_for_service(service_name) configs = [] if ::File.exist?("/etc/init.d/#{service_name}") configs << :initd end if ::File.exist?("/etc/init/#{service_name}.conf") configs << :upstart end if ::File.exist?("/etc/xinetd.d/#{service_name}") configs << :xinetd end if ::File.exist?("/etc/rc.d/#{service_name}") configs << :etc_rcd end if ::File.exist?("/usr/local/etc/rc.d/#{service_name}") configs << :usr_local_etc_rcd end if systemd_sanity_check? && platform_has_systemd_unit?(service_name) configs << :systemd end configs end |
.service_resource_providers ⇒ Object
This helper is mostly used to sort out the mess of different linux mechanisms that can be used to start services. It does not necessarily need to linux-specific, but currently all our other service providers are narrowly platform-specific with no alternatives.
NOTE: if a system has (for example) chkconfig installed then we should report that chkconfig is installed. The fact that a system may also have systemd installed does not mean that we do not report that systemd is also installed. This module is purely for discovery of all the alternatives, handling the priority of the different services is NOT a design concern of this module.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/chef/platform/service_helpers.rb', line 44 def service_resource_providers service_resource_providers = [] if ::File.exist?("/usr/sbin/update-rc.d") service_resource_providers << :debian end if ::File.exist?("/usr/sbin/invoke-rc.d") service_resource_providers << :invokercd end if ::File.exist?("/sbin/insserv") service_resource_providers << :insserv end # debian >= 6.0 has /etc/init but does not have upstart if ::File.exist?("/etc/init") && ::File.exist?("/sbin/start") service_resource_providers << :upstart end if ::File.exist?("/sbin/chkconfig") service_resource_providers << :redhat end if systemd_sanity_check? service_resource_providers << :systemd end service_resource_providers end |