aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2010-09-19 16:39:01 +0200
committerGuido Günther <agx@sigxcpu.org>2010-09-19 16:39:01 +0200
commitcb2f19fb248792db25d845e5bf0c27972e0c3ff2 (patch)
tree5617d746426b0b247327babe8e1ccf6ffaf0c1ed
parent66c60694bedfde816bdcd955be4303c4c5230943 (diff)
Find SysV RC based services on Fedora
-rwxr-xr-xwhatmaps14
1 files changed, 12 insertions, 2 deletions
diff --git a/whatmaps b/whatmaps
index fc6c703..0fa53d2 100755
--- a/whatmaps
+++ b/whatmaps
@@ -199,11 +199,11 @@ class RedHatDistro(Distro):
class FedoraDistro(RedHatDistro):
id = 'Fedora'
- pass
class RpmPkg(Pkg):
type = 'RPM'
+ _init_script_re = re.compile('/etc/rc.d/init.d/[a-zA-Z0-9]')
_list_contents = "rpm -ql %s 2>/dev/null"
def __init__(self, name):
@@ -223,9 +223,19 @@ class RpmPkg(Pkg):
self._shared_objects.append(m.group('so'))
return self._shared_objects
+
@property
def services(self):
- raise NotImplementedError
+ if self._services != None:
+ return self._services
+
+ self._services = []
+ contents = self._get_contents()
+ # Only supports sysvinit so far:
+ for line in contents:
+ if self._init_script_re.match(line):
+ self._services.append(os.path.basename(line.strip()))
+ return self._services
def check_maps(procs, shared_objects):