--- - name: Capture a list of running services ansible.builtin.set_fact: bigboot_systemd_running_services: "{{ bigboot_systemd_running_services | default([]) + [item['key']] }}" loop: "{{ ansible_facts['services'] | dict2items }}" loop_control: label: "{{ item['key'] }}" when: - "'running' in item['value']['state']" - name: Get the stop timeout value for running services ansible.builtin.shell: cmd: | set -o pipefail systemctl show {{ item }} | grep TimeoutStopUSec changed_when: false register: bigboot_systemd_service_timeout loop: "{{ bigboot_systemd_running_services }}" - name: Adding service to a list of services to disable for exceeding timeout threshold ansible.builtin.set_fact: bigboot_services_disabled: "{{ bigboot_services_disabled | default([]) + [item['item']] }}" loop: "{{ bigboot_systemd_service_timeout['results'] }}" loop_control: label: "{{ item['item'] }}" when: - item['item'] not in bigboot_protected_services - item['stdout'] | regex_replace('^.*=(.*$)', '\\1') | community.general.to_minutes >= bigboot_service_max_timeout | int - name: Adding service to a list of services to disable for being incompatible ansible.builtin.set_fact: bigboot_services_disabled: "{{ bigboot_services_disabled | default([]) + [item] }}" loop: "{{ bigboot_incompatible_services }}" when: - item not in bigboot_protected_services - ansible_facts['services'][item] is defined - ansible_facts['services'][item]['state'] == "running"