Module: Utils::Service Private

Defined in:
utils/service.rb

Overview

This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.

Helpers for brew services related code.

Class Method Summary collapse

Class Method Details

.installed?(formula) ⇒ Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Check if a service file is installed in the expected location.

Parameters:

Returns:

  • (Boolean)


19
20
21
22
# File 'utils/service.rb', line 19

def self.installed?(formula)
  (launchctl? && formula.launchd_service_path.exist?) ||
    (systemctl? && formula.systemd_service_path.exist?)
end

.launchctlPathname?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Path to launchctl binary.

Returns:



26
27
28
29
30
31
# File 'utils/service.rb', line 26

def self.launchctl
  return @launchctl if defined? @launchctl
  return if ENV["HOMEBREW_TEST_GENERIC_OS"]

  @launchctl = T.let(which("launchctl"), T.nilable(Pathname))
end

.launchctl?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


43
44
45
# File 'utils/service.rb', line 43

def self.launchctl?
  !launchctl.nil?
end

.running?(formula) ⇒ Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Check if a service is running for a specified formula.

Parameters:

Returns:

  • (Boolean)


9
10
11
12
13
14
15
# File 'utils/service.rb', line 9

def self.running?(formula)
  if launchctl?
    quiet_system(launchctl, "list", formula.plist_name)
  elsif systemctl?
    quiet_system(systemctl, "is-active", "--quiet", formula.service_name)
  end
end

.systemctlPathname?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Path to systemctl binary.

Returns:



35
36
37
38
39
40
# File 'utils/service.rb', line 35

def self.systemctl
  return @systemctl if defined? @systemctl
  return if ENV["HOMEBREW_TEST_GENERIC_OS"]

  @systemctl = T.let(which("systemctl"), T.nilable(Pathname))
end

.systemctl?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


48
49
50
# File 'utils/service.rb', line 48

def self.systemctl?
  !systemctl.nil?
end