From 8d53ef2f6055e174a10795bc5a084c3a36389678 Mon Sep 17 00:00:00 2001 From: David Wittman Date: Wed, 25 Mar 2015 17:21:37 -0500 Subject: [PATCH] [service] Fix bug with upstart detection Upstart scripts are being incorrectly identified as SysV init scripts due to a logic error in the `service` module. Because upstart uses multiple commands (`/sbin/start`, `/sbin/stop`, etc.) for managing service state, the codepath for upstart sets `self.svc_cmd` to an empty string on line 451. Empty strings are considered a non-truthy value in Python, so conditionals which are checking the state of `self.svc_cmd` should explicitly compare it to `None` to avoid overlooking the fact that the service may be controlled by an upstart script. --- system/service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/service.py b/system/service.py index 9d921472349..2df509662ec 100644 --- a/system/service.py +++ b/system/service.py @@ -472,7 +472,7 @@ class LinuxService(Service): self.module.fail_json(msg="no service or tool found for: %s" % self.name) # If no service control tool selected yet, try to see if 'service' is available - if not self.svc_cmd and location.get('service', False): + if self.svc_cmd is None and location.get('service', False): self.svc_cmd = location['service'] # couldn't find anything yet