VirtualBox

Ignore:
Timestamp:
Dec 23, 2016 4:41:30 PM (8 years ago)
Author:
vboxsync
Message:

common/utils.py: Use 'ps' on solaris so we get info on suid processes and other users' processes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/common/utils.py

    r64120 r65006  
    763763            if self.sCwd     is None: self.sCwd   = noxcptReadLink(sProc + 'cwd', None);
    764764            if self.asArgs   is None: self.asArgs = noxcptReadFile(sProc + 'cmdline', '').split('\x00');
    765         elif sOs == 'solaris':
    766             sProc = '/proc/%s/' % (self.iPid,);
    767             if self.sImage   is None: self.sImage = noxcptReadLink(sProc + 'path/a.out', None);
    768             if self.sCwd     is None: self.sCwd   = noxcptReadLink(sProc + 'path/cwd', None);
     765        #elif sOs == 'solaris': - doesn't work for root processes, suid proces, and other stuff.
     766        #    sProc = '/proc/%s/' % (self.iPid,);
     767        #    if self.sImage   is None: self.sImage = noxcptReadLink(sProc + 'path/a.out', None);
     768        #    if self.sCwd     is None: self.sCwd   = noxcptReadLink(sProc + 'path/cwd', None);
    769769        else:
    770770            pass;
     
    836836            asProcesses.append(oMyInfo);
    837837
    838     elif sOs in [ 'linux', 'solaris' ]:
     838    elif sOs in [ 'linux', ]:  # Not solaris, ps gets more info than /proc/.
    839839        try:
    840840            asDirs = os.listdir('/proc');
     
    853853                                          '-o', 'pgid=',
    854854                                          '-o', 'sess=',
     855                                          '-o', 'uid=',
     856                                          '-o', 'gid=',
     857                                          '-o', 'comm=' ]);
     858        except:
     859            return asProcesses;
     860    elif sOs == 'solaris':
     861        # Try our best to parse ps output. (Not perfect but does the job most of the time.)
     862        try:
     863            sRaw = processOutputChecked([ '/usr/ccs/bin/ps', '-A',
     864                                          '-o', 'pid=',
     865                                          '-o', 'ppid=',
     866                                          '-o', 'pgid=',
     867                                          '-o', 'sid=',
    855868                                          '-o', 'uid=',
    856869                                          '-o', 'gid=',
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette