salt.modules.mac_service#
The service module for macOS
New in version 2016.3.0.
This module has support for services in the following locations.
/System/Library/LaunchDaemons/
/System/Library/LaunchAgents/
/Library/LaunchDaemons/
/Library/LaunchAgents/
# As of version "2019.2.0" support for user-specific services were added.
/Users/foo/Library/LaunchAgents/
Note
As of the 2019.2.0 release, if a service is located in a LaunchAgent
path and a runas user is NOT specified, the current console user will
be used to properly interact with the service.
Note
As of the 3002 release, if a service name of salt-minion is passed this
module will convert it over to it's macOS equivalent name, in this case
to com.saltstack.salt.minion. This is true for salt-master
salt-api, and salt-syndic as well.
- salt.modules.mac_service.available(name)#
Check that the given service is available.
- Parameters:
name (str) -- The name of the service
- Returns:
True if the service is available, otherwise False
- Return type:
CLI Example:
salt '*' service.available com.openssh.sshd
- salt.modules.mac_service.disable(name, runas=None)#
Disable a launchd service. Raises an error if the service fails to be disabled
- Parameters:
- Returns:
Trueif successful or if the service is already disabled- Return type:
CLI Example:
salt '*' service.disable org.cups.cupsd
- salt.modules.mac_service.disabled(name, runas=None, domain='system')#
Check if the specified service is not enabled. This is the opposite of
service.enabled- Parameters:
- Returns:
True if the specified service is NOT enabled, otherwise False
- Return type:
CLI Example:
salt '*' service.disabled org.cups.cupsd
- salt.modules.mac_service.enable(name, runas=None)#
Enable a launchd service. Raises an error if the service fails to be enabled
- Parameters:
- Returns:
Trueif successful or if the service is already enabled- Return type:
CLI Example:
salt '*' service.enable org.cups.cupsd
- salt.modules.mac_service.enabled(name, runas=None)#
Check if the specified service is enabled (not disabled, capable of being loaded/bootstrapped).
Note
Previously this function would see if the service is loaded via
launchctl listto determine if the service is enabled. This was not an accurate way to do so. The new behavior checks to make sure its not disabled to determine the status. Please useservice.loadedfor the previous behavior.- Parameters:
- Returns:
True if the specified service enabled, otherwise False
- Return type:
CLI Example:
salt '*' service.enabled org.cups.cupsd
- salt.modules.mac_service.get_all(runas=None)#
Return a list of services that are enabled or available. Can be used to find the name of a service.
- Parameters:
runas (str) -- User to run launchctl commands
- Returns:
A list of all the services available or enabled
- Return type:
CLI Example:
salt '*' service.get_all
- salt.modules.mac_service.get_enabled(runas=None)#
Return a list of all services that are enabled. Can be used to find the name of a service.
- Parameters:
runas (str) -- User to run launchctl commands
- Returns:
A list of all the services enabled on the system
- Return type:
CLI Example:
salt '*' service.get_enabled
- salt.modules.mac_service.launchctl(sub_cmd, *args, **kwargs)#
Run a launchctl command and raise an error if it fails
- Parameters:
- Returns:
Trueif successful, raiseCommandExecutionErrorif not, or the stdout of the launchctl command if requested- Return type:
CLI Example:
salt '*' service.launchctl debug org.cups.cupsd
- salt.modules.mac_service.list_(name=None, runas=None)#
Run launchctl list and return the output
- Parameters:
- Returns:
If a name is passed returns information about the named service, otherwise returns a list of all services and pids
- Return type:
CLI Example:
salt '*' service.list salt '*' service.list org.cups.cupsd
- salt.modules.mac_service.loaded(name, runas=None)#
Check if the specified service is loaded.
- Parameters:
- Returns:
Trueif the specified service is loaded, otherwiseFalse- Return type:
CLI Example:
salt '*' service.loaded org.cups.cupsd
- salt.modules.mac_service.missing(name)#
The inverse of service.available Check that the given service is not available.
- Parameters:
name (str) -- The name of the service
- Returns:
True if the service is not available, otherwise False
- Return type:
CLI Example:
salt '*' service.missing com.openssh.sshd
- salt.modules.mac_service.restart(name, runas=None)#
Unloads and reloads a launchd service. Raises an error if the service fails to reload
- Parameters:
- Returns:
Trueif successful- Return type:
CLI Example:
salt '*' service.restart org.cups.cupsd
- salt.modules.mac_service.show(name)#
Show properties of a launchctl service
- Parameters:
name (str) -- Service label, file name, or full path
- Returns:
The service information if the service is found
- Return type:
CLI Example:
salt '*' service.show org.cups.cupsd # service label salt '*' service.show org.cups.cupsd.plist # file name salt '*' service.show /System/Library/LaunchDaemons/org.cups.cupsd.plist # full path
- salt.modules.mac_service.start(name, runas=None)#
Start a launchd service. Raises an error if the service fails to start
Note
To start a service in macOS the service must be enabled first. Use
service.enableto enable the service.- Parameters:
- Returns:
Trueif successful or if the service is already running- Return type:
CLI Example:
salt '*' service.start org.cups.cupsd
- salt.modules.mac_service.status(name, sig=None, runas=None)#
Return the status for a service.
Note
Previously this function would return a PID for a running service with a PID or 'loaded' for a loaded service without a PID. This was changed to have better parity with other service modules that return True/False.
- Parameters:
- Returns:
True if running, otherwise False.
- Return type:
CLI Example:
salt '*' service.status cups
- salt.modules.mac_service.stop(name, runas=None)#
Stop a launchd service. Raises an error if the service fails to stop
Note
Though
service.stopwill unload a service in macOS, the service will start on next boot unless it is disabled. Useservice.disableto disable the service- Parameters:
- Returns:
Trueif successful or if the service is already stopped- Return type:
CLI Example:
salt '*' service.stop org.cups.cupsd