### Summary

service_facts is not accurately reporting systemd-modules-load.service status if the service fails to load a module. The service will result in an `Active: failed` state on the machine but Ansible will report `status: static` state in service_facts.

### Issue Type

Bug Report

### Component Name

service_facts

### Ansible Version

```console
$ ansible --version
ansible 2.9.23
  config file = None
  configured module search path = ['/Users/person/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/person/.virtualenvs/msc_hpc/lib/python3.10/site-packages/ansible
  executable location = /Users/person/.virtualenvs/msc_hpc/bin/ansible
  python version = 3.10.0b1 (default, Jun  7 2021, 15:45:11) [Clang 12.0.0 (clang-1200.0.32.29)]
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

Centos 7

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
- Create a phony module and reload the kernel modules:
```shell
cat 'bar' > /etc/modules-load.d/foo.conf
systemctl restart systemd-modules-load.service
```

- Create a simple playbook that gathers service_facts and ouputs the results
```yaml
- name: Gather service facts.
  service_facts:

- name: Verify systemd-modules-load.service is in happy state.
  debug:
    msg: '{{ ansible_facts.services["systemd-modules-load.service"] }}'
```


### Expected Results

- Running the status of the service of the machine shows that it `failed` to run due to an invalid module configuration.
```shell
systemctl status systemd-modules-load.service
```

```shell
● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 2021-07-15 22:39:24 UTC; 26min ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 150775 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 150775 (code=exited, status=1/FAILURE)
```

### Actual Results

```console
- Ansible fails to detect the `failed` status of the service and outputs incorrect results.

TASK [test_msc_hpc : Verify systemd-modules-load.service is started.] **********
 ok: [hpc-test] =>
    msg:
      name: systemd-modules-load.service
      source: systemd
      state: stopped
      status: static
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
match_any = True
                if match_any:
                    
                    rc, stdout, stderr = self.module.run_command('%s -l --allservices' % chkconfig_path, use_unsafe_shell=True)
                elif '--list' in stderr:
                    
                    rc, stdout, stderr = self.module.run_command('%s --list' % chkconfig_path, use_unsafe_shell=True)
            for line in stdout.split('\n'):
                m = p.match(line)
                if m:
                    service_name = m.group('service')
                    service_state = 'stopped'
                    service_status = "disabled"
                    if m.group('rl3') == 'on':
                        service_status = "enabled"
                    rc, stdout, stderr = self.module.run_command('%s %s status' % (service_path, service_name), use_unsafe_shell=True)
                    service_state = rc
                    if rc in (0,):
                        service_state = 'running'
                    
                    else:
                        if 'root' in stderr or 'permission' in stderr.lower() or 'not in sudoers' in stderr.lower():
                            self.incomplete_warning = True
                            continue
                        else:
                            service_state = 'stopped'
                    service_data = {"name": service_name, "state": service_state, "status": service_status, "source": "sysv"}
                    services[service_name] = service_data
        return services
class SystemctlScanService(BaseService):