Class: Chef::Platform::ServiceHelpers
- Inherits:
-
Object
- Object
- Chef::Platform::ServiceHelpers
- Defined in:
- lib/chef/platform/service_helpers.rb
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.
Class Method Details
.config_for_service(service_name) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/chef/platform/service_helpers.rb', line 68 def config_for_service(service_name) configs = [] if ::File.exist?(Chef.path_to("/etc/init.d/#{service_name}")) configs << :initd end if ::File.exist?(Chef.path_to("/etc/init/#{service_name}.conf")) configs << :upstart end if ::File.exist?(Chef.path_to("/etc/xinetd.d/#{service_name}")) configs << :xinetd end if ::File.exist?(Chef.path_to("/etc/rc.d/#{service_name}")) configs << :etc_rcd end if ::File.exist?(Chef.path_to("/usr/local/etc/rc.d/#{service_name}")) configs << :usr_local_etc_rcd end if has_systemd_service_unit?(service_name) || 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.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/chef/platform/service_helpers.rb', line 38 def service_resource_providers providers = [] if ::File.exist?(Chef.path_to("/usr/sbin/update-rc.d")) providers << :debian end if ::File.exist?(Chef.path_to("/usr/sbin/invoke-rc.d")) providers << :invokercd end if ::File.exist?(Chef.path_to("/sbin/initctl")) providers << :upstart end if ::File.exist?(Chef.path_to("/sbin/insserv")) providers << :insserv end if systemd_is_init? providers << :systemd end if ::File.exist?(Chef.path_to("/sbin/chkconfig")) providers << :redhat end providers end |