class Inspec::Resources::BSDInit

@see: www.freebsd.org/doc/en/articles/linux-users/startup.html @see: www.freebsd.org/cgi/man.cgi?query=rc.conf&sektion=5

Public Class Methods

new(service_name, service_ctl = nil) click to toggle source
Calls superclass method Inspec::Resources::ServiceManager::new
# File lib/inspec/resources/service.rb, line 482
def initialize(service_name, service_ctl = nil)
  @service_ctl = service_ctl || "service"
  super
end

Public Instance Methods

info(service_name) click to toggle source
# File lib/inspec/resources/service.rb, line 487
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_ctl} -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_ctl} #{service_name} onestatus")
  running = cmd.exit_status == 0

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