HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //proc/self/root/usr/lib/fm-agent/library/process_manager.py
import pwd
import os


class ProcessManager(object):
    def get_process_from_user(self, pids, username):
        """
        Return only the pids belonging to certain username.
        """
        filtered_pids = [
            pid
            for pid in pids
            if os.path.isdir("/proc/%s" % pid)
            if self.get_owner_name("/proc/%s" % pid) == username
        ]
        return filtered_pids

    def get_owner_name(self, pid):
        """
        Return the owner name of the passed pid.
        """
        try:
            return pwd.getpwuid(os.stat(pid).st_uid)[0]
        except os.error:
            return None

    def filter_non_pid_process(self, process_list):
        """
        Filter non pid process from the list, by checking that they are
        castable to integers.
        """
        return list(filter(str.isdigit, process_list))