|
@@ -10,16 +10,19 @@
|
|
|
systemd:
|
|
|
name: '{{ systemd_unit_name }}'
|
|
|
register: _unit
|
|
|
- when: _config_file.changed
|
|
|
+ when: _config_file.changed or systemd_unit_restart_if_active
|
|
|
- name: 'set state of systemd unit {{ systemd_unit_name }}'
|
|
|
systemd:
|
|
|
daemon_reload: '{{ _config_file.changed }}'
|
|
|
name: '{{ systemd_unit_name }}'
|
|
|
enabled: '{{ systemd_unit_enabled | default(omit) }}'
|
|
|
+ # > `started'/`stopped' are idempotent actions [...]
|
|
|
+ # > `restarted' will always bounce the service
|
|
|
state: >-
|
|
|
{{ "restarted" if (systemd_unit_state is not defined
|
|
|
or systemd_unit_state != "stopped")
|
|
|
- and _config_file.changed
|
|
|
+ and (_config_file.changed
|
|
|
+ or systemd_unit_restart_if_active)
|
|
|
and 'ActiveState' in _unit.status
|
|
|
and _unit.status.ActiveState == "active"
|
|
|
else systemd_unit_state | default(omit) }}
|
|
@@ -27,3 +30,6 @@
|
|
|
_config_file.changed
|
|
|
or systemd_unit_enabled is defined
|
|
|
or systemd_unit_state is defined
|
|
|
+ or (systemd_unit_restart_if_active
|
|
|
+ and 'ActiveState' in _unit.status
|
|
|
+ and _unit.status.ActiveState == "active")
|