Class: BSDInit

Inherits:
ServiceManager show all
Defined in:
lib/resources/service.rb

Overview

Instance Attribute Summary

Attributes inherited from ServiceManager

#inspec

Instance Method Summary collapse

Methods inherited from ServiceManager

#initialize

Constructor Details

This class inherits a constructor from ServiceManager

Instance Method Details

#info(service_name) ⇒ Object



300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
# File 'lib/resources/service.rb', line 300

def info(service_name)
  # check if service is enabled
  # services are enabled in /etc/rc.conf and /etc/defaults/rc.conf
  # via #{service_name}_enable="YES"
  # service SERVICE status returns the following result if not activated:
  #   Cannot 'status' sshd. Set sshd_enable to YES in /etc/rc.conf or use 'onestatus' instead of 'status'.
  # gather all enabled services
  cmd = inspec.command('service -e')
  return nil if cmd.exit_status != 0

  # search for the service
  srv = /(^.*#{service_name}$)/.match(cmd.stdout)
  return nil if srv.nil? || srv[0].nil?
  enabled = true

  # check if the service is running
  # if the service is not available or not running, we always get an error code
  cmd = inspec.command("service #{service_name} onestatus")
  cmd.exit_status == 0 ? (running = true) : (running = false)

  {
    name: service_name,
    description: nil,
    installed: true,
    running: running,
    enabled: enabled,
    type: 'bsd-init',
  }
end