From c6bbc371aca336e3df2368149fd8a34b6a7d3ede Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Sun, 19 Sep 2010 16:20:27 +0200 Subject: Handle deleted files in /proc//exe --- whatmaps | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/whatmaps b/whatmaps index 779b7dc..f7a62a0 100755 --- a/whatmaps +++ b/whatmaps @@ -31,6 +31,7 @@ class PkgError(Exception): class Process(object): """A process, needs /proc mounted""" + deleted_re = re.compile(r"(?P.*) \(deleted\)$") def __init__(self, pid): self.pid = pid @@ -38,6 +39,13 @@ class Process(object): try: # Linux only so far self.exe = os.readlink('/proc/%d/exe' % self.pid) + 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) self.cmdline = open('/proc/%d/cmdline' % self.pid).read() except OSError: self.exe = None -- cgit v1.2.3