Units Manged By Systemctl (services)¶
Parsers included in this module are:
ListUnits - command /bin/systemctl list-units
¶
UnitFiles - command /bin/systemctl list-unit-files
¶
- class insights.parsers.systemd.unitfiles.ListUnits(*args, **kwargs)[source]¶
Bases:
Parser
The ListUnits class parses the output of
/bin/systemctl list-units
and provides information about all the services listed under it.Output of Command:
UNIT LOAD ACTIVE SUB DESCRIPTION sockets.target loaded active active Sockets swap.target loaded active active Swap systemd-shutdownd.socket loaded active listening Delayed Shutdown Socket neutron-dhcp-agent.service loaded active running OpenStack Neutron DHCP Agent neutron-openvswitch-agent.service loaded active running OpenStack Neutron Open vSwitch Agent ... unbound-anchor.timer loaded active waiting daily update of the root trust anchor for DNSSEC LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 161 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
- Raises:
SkipComponent -- When nothing is parsed.
Example
>>> units.get_service_details('swap.target') == {'LOAD': 'loaded', 'ACTIVE': 'active', 'SUB': 'active', 'UNIT': 'swap.target', 'DESCRIPTION': 'Swap'} True >>> units.unit_list['swap.target'] == {'LOAD': 'loaded', 'ACTIVE': 'active', 'SUB': 'active', 'UNIT': 'swap.target', 'DESCRIPTION': 'Swap'} True >>> units.is_active('swap.target') True >>> units.get_service_details('random.service') == {'LOAD': None, 'ACTIVE': None, 'SUB': None, 'UNIT': None, 'DESCRIPTION': None} True
- get_service_details(service_name)[source]¶
Return the service details collected by systemctl.
- Parameters:
service_name (str) -- service name including its extension.
- Returns:
Dictionary containing details for the service. if service is not present dictonary values will be None:
{'LOAD': 'loaded', 'ACTIVE': 'active', 'SUB': 'running', 'UNIT': 'neutron-dhcp-agent.service'}
- Return type:
dict
- is_active(service_name)[source]¶
Return the ACTIVE state of service managed by systemd.
- Parameters:
service_name (str) -- service name including its extension.
- Returns:
True if service is active False if inactive
- Return type:
bool
- is_failed(service_name)[source]¶
Return the ACTIVE state of service managed by systemd.
- Parameters:
service_name (str) -- service name including its extension.
- Returns:
True if service is failed, False in all other states.
- Return type:
bool
- is_loaded(service_name)[source]¶
Return the LOAD state of service managed by systemd.
- Parameters:
service_name (str) -- service name including its extension.
- Returns:
True if service is loaded False if not loaded
- Return type:
bool
- is_running(service_name)[source]¶
Return the SUB state of service managed by systemd.
- Parameters:
service_name (str) -- service name including its extension.
- Returns:
True if service is running False in all other states.
- Return type:
bool
- parse_content(content)[source]¶
Main parsing class method which stores all interesting data from the content.
- Parameters:
content (context.content) -- Parser context content
- property service_names¶
Returns a list of all UNIT names.
- Type:
list
- unit_list¶
Dictionary service detail like active, running, exited, dead
- Type:
dict
- class insights.parsers.systemd.unitfiles.UnitFiles(*args, **kwargs)[source]¶
Bases:
Parser
The UnitFiles class parses the output of
/bin/systemctl list-unit-files
and provides information about enabled services.- Output of Command::
UNIT FILE STATE mariadb.service enabled neutron-openvswitch-agent.service enabled neutron-ovs-cleanup.service enabled neutron-server.service enabled runlevel0.target disabled runlevel1.target disabled runlevel2.target enabled
- Raises:
SkipComponent -- When nothing is parsed.
Example
>>> conf.is_on('mariadb.service') True >>> conf.is_on('runlevel0.target') False >>> conf.exists('neutron-server.service') True >>> conf.exists('runlevel1.target') True >>> 'mariadb.service' in conf.services True >>> 'runlevel0.target' in conf.services True >>> 'nonexistent-service.service' in conf.services False >>> conf.services['mariadb.service'] True >>> conf.services['runlevel1.target'] False >>> conf.services['nonexistent-service.service'] Traceback (most recent call last): File "<doctest insights.parsers.systemd.unitfiles.UnitFiles[11]>", line 1, in <module> conf.services['nonexistent-service.service'] KeyError: 'nonexistent-service.service'
- exists(service_name)[source]¶
Checks if the service is listed in systemctl.
- Parameters:
service_name (str) -- service name including ‘.service’
- Returns:
True if service exists, False otherwise.
- Return type:
bool
- is_on(service_name)[source]¶
Checks if the service is enabled in systemctl.
- Parameters:
service_name (str) -- service name including ‘.service’
- Returns:
True if service is enabled, False if it is disabled. None if the service doesn’t exist.
- Return type:
Union[bool, None]
- parse_content(content)[source]¶
Main parsing class method which stores all interesting data from the content.
- Parameters:
content (context.content) -- Parser context content
- parsed_lines¶
Dictionary of content lines access by service name.
- Type:
dict
- service_list¶
List of service names in order of appearance.
- Type:
list
- services¶
Dictionary of bool indicating if service is enabled, access by service name .
- Type:
dict