module/systemd: fix logic determining if a service needs to be enabled (#46245)
* modules/systemd: fix logic: allow scope to default to 'system' Fix logic introduced in7ea909418e
: if 'scope' param is not specified, it defaults to system, but the value of module.params['scope'] is None, not 'system' - so allow for that. * modules/systemd: fix logic: disabled means disabled Fix logic determining whether a service with both systemd and initd files is enabled or disabled. In situations where systemd thinks service is disabled, but rc.d symlinks mark it as enabled, this module wrongly assumes the service is enabled. Fix this logic: disabled means disabled Only when the output from does NOT include disabled, consider the status of rc.d symlinks. This essentially replicates the fixes done to the systemd handling in the "service" module in3c89a21e0c
Fixes #22303 Fixes #44409
This commit is contained in:
parent
dae2172045
commit
ef131c7556
1 changed files with 3 additions and 2 deletions
|
@ -443,10 +443,11 @@ def main():
|
|||
enabled = True
|
||||
elif rc == 1:
|
||||
# if not a user or global user service and both init script and unit file exist stdout should have enabled/disabled, otherwise use rc entries
|
||||
if module.params['scope'] == 'system' and \
|
||||
if module.params['scope'] in (None, 'system') and \
|
||||
not module.params['user'] and \
|
||||
is_initd and \
|
||||
(not out.strip().endswith('disabled') or sysv_is_enabled(unit)):
|
||||
not out.strip().endswith('disabled') and \
|
||||
sysv_is_enabled(unit):
|
||||
enabled = True
|
||||
|
||||
# default to current state
|
||||
|
|
Loading…
Reference in a new issue