KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/22697/root/usr/lib/python2.4/site-packages/sos/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/22697/root/usr/lib/python2.4/site-packages/sos/plugins/process.py
### 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", symlink = "ps")
        self.collectExtOutput("/bin/ps auxwwwm")
        self.collectExtOutput("/bin/ps alxwww")
        self.collectExtOutput("/usr/bin/pstree", symlink = "pstree")
        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,5):
                        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




Anon7 - 2021