diff options
Diffstat (limited to 'src/lib/sos/plugins/process.py')
-rw-r--r-- | src/lib/sos/plugins/process.py | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/src/lib/sos/plugins/process.py b/src/lib/sos/plugins/process.py deleted file mode 100644 index 0d89e06b..00000000 --- a/src/lib/sos/plugins/process.py +++ /dev/null @@ -1,63 +0,0 @@ -### This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. - -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -import sos.plugintools -import commands -import time -import os - -class process(sos.plugintools.PluginBase): - """process information - """ - def setup(self): - self.collectExtOutput("/bin/ps auxwww", root_symlink = "ps") - self.collectExtOutput("/bin/ps auxwwwm") - self.collectExtOutput("/bin/ps alxwww") - self.collectExtOutput("/usr/bin/pstree", root_symlink = "pstree") - self.collectExtOutput("/usr/sbin/lsof -b +M -n -l", root_symlink = "lsof") - return - - def find_mountpoint(s): - if (os.path.ismount(s) or len(s)==0): return s - else: return mountpoint(os.path.split(s)[0]) - - def diagnose(self): - # check that no process is in state D - dpids = [] - status, output = commands.getstatusoutput("/bin/ps -A -o state,pid --no-heading") - if not status: - for line in output.split("\n"): - line = line.split() - if line[0] == "D": - # keep an eye on the process to see if the stat changes - for inc in range(1,10): - try: - if len(self.fileGrep("^State: D", " /proc/%d/status" % int(line[1]))) == 0: - # status is not D, good. let's get out of the loop. - time.sleep(0.1 * inc) - continue - except IOError: - # this should never happen... - pass - else: - # still D after 0.1 * range(1,5) seconds - dpids.append(int(line[1])) - - if len(dpids): - self.addDiagnose("one or more processes are in state D (sosreport might hang)") - - return - - - |