From 18158e17898e3359de42893c18ee93b305473826 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Sat, 21 May 2011 13:50:21 +0200 Subject: Adapt so Squeeze's apache 2.2 package --- whatmaps | 1 + 1 file changed, 1 insertion(+) diff --git a/whatmaps b/whatmaps index 6991088..66bcf7c 100755 --- a/whatmaps +++ b/whatmaps @@ -177,6 +177,7 @@ class DebianDistro(Distro): _pkg_services = { 'apache2-mpm-worker': [ 'apache2' ], 'apache2-mpm-prefork': [ 'apache2' ], + 'apache2.2-bin': [ 'apache2' ], 'dovecot-imapd': [ 'dovecot' ], 'dovecot-pop3d': [ 'dovecot' ], 'exim4-daemon-light': [ 'exim4' ], -- cgit v1.2.3 From 3fe70945a002917803e71dfc3e7cc08e0d435d87 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Sun, 26 Jun 2011 22:39:19 +0200 Subject: Check for deleted binaries before trying to stat them --- whatmaps | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/whatmaps b/whatmaps index 66bcf7c..a5c6a8b 100755 --- a/whatmaps +++ b/whatmaps @@ -47,13 +47,12 @@ class Process(object): self.mapped = [] try: self.exe = os.readlink('/proc/%d/exe' % self.pid) + m = self.deleted_re.match(self.exe) + if m: + self.exe = m.group('exe') + logging.debug("Using deleted exe %s", self.exe) if not os.path.exists(self.exe): - m = self.deleted_re.match(self.exe) - if m: - self.exe = m.group('exe') - logging.debug("Using deleted exe %s", self.exe) - else: - logging.debug("%s doesn't exist", self.exe) + logging.debug("%s doesn't exist", self.exe) self.cmdline = open('/proc/%d/cmdline' % self.pid).read() except OSError: self.exe = None -- cgit v1.2.3 From 0fa3c86f14e30690012db7b6d80f0b06f33660ff Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Sun, 20 May 2012 14:41:34 +0200 Subject: Skip already terminated processes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Christop Göhre for pointing this out --- whatmaps | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/whatmaps b/whatmaps index a5c6a8b..8c4964b 100755 --- a/whatmaps +++ b/whatmaps @@ -23,6 +23,7 @@ import re import string import subprocess import sys +import errno from optparse import OptionParser try: import apt_pkg @@ -60,7 +61,13 @@ class Process(object): def _read_maps(self): """Read the SOs from /proc//maps""" - for line in file('/proc/%d/maps' % self.pid): + try: + f = file('/proc/%d/maps' % self.pid) + except IOError as e: + # ignore killed process + if e.errno != errno.ENOENT: + raise + for line in f: try: so = line.split()[5].strip() self.mapped.append(so) -- cgit v1.2.3 From 97de5049bfabf16c4510148f51bc253178b5de3c Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Tue, 21 May 2013 16:59:28 +0200 Subject: Remove duplicate detect_distro call --- whatmaps | 2 -- 1 file changed, 2 deletions(-) diff --git a/whatmaps b/whatmaps index 8c4964b..cbece71 100755 --- a/whatmaps +++ b/whatmaps @@ -461,8 +461,6 @@ def write_cmd_file(services, cmd_file, distro): def main(argv): shared_objects = [] - distro = detect_distro() - parser = OptionParser(usage='%prog [options] pkg1 [pkg2 pkg3 pkg4]') parser.add_option("--debug", action="store_true", dest="debug", default=False, help="enable debug output") -- cgit v1.2.3 From c1eef79e20033fc3441d6c9c013cd96f5aebfbc2 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Tue, 7 Jan 2014 18:35:24 +0100 Subject: Don't fail if lsb_release is missing --- whatmaps | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/whatmaps b/whatmaps index cbece71..d775098 100755 --- a/whatmaps +++ b/whatmaps @@ -425,12 +425,16 @@ def detect_distro(): if lsb_release: id = lsb_release.get_distro_information()['ID'] else: - lsb_cmd = subprocess.Popen(['lsb_release', '--id', '-s'], + try: + lsb_cmd = subprocess.Popen(['lsb_release', '--id', '-s'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - output = lsb_cmd.communicate()[0] - if not lsb_cmd.returncode: - id = output.strip() + output = lsb_cmd.communicate()[0] + if not lsb_cmd.returncode: + id = output.strip() + except OSError: + # id is None in this case + pass if id == DebianDistro.id: return DebianDistro -- cgit v1.2.3