当前位置: 首页>>代码示例>>Python>>正文


Python psutil.ZombieProcess方法代码示例

本文整理汇总了Python中psutil.ZombieProcess方法的典型用法代码示例。如果您正苦于以下问题:Python psutil.ZombieProcess方法的具体用法?Python psutil.ZombieProcess怎么用?Python psutil.ZombieProcess使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在psutil的用法示例。


在下文中一共展示了psutil.ZombieProcess方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: check

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def check(self):
        """
        Check that the service is running and consistent with pid file(s).

        Returns True or False.
        """
        # Set of pids (strings) where the command string matches what we are
        # looking for.
        detected_pids = set()

        # Set of pids (strings) that are both running processes and found in
        # pid files.
        consistent_pids = set()

        # Search for running processes that match our command string.
        for proc in psutil.process_iter():
            try:
                if self.cmdstring in proc.name():
                    detected_pids.add(str(proc.pid))

            # We could also get psutil.ZombieProcess or
            # psutil.AccessDenied.  We want those to be logged.
            except psutil.NoSuchProcess:
                pass

        # Search for pid file(s) and check consistency.
        for pidfile in self.pidfiles:
            for path in glob.iglob(pidfile):
                with open(path, 'r') as source:
                    pid = source.read().strip()

                if pid in detected_pids:
                    consistent_pids.add(pid)
                else:
                    # Delete the stale pid file.
                    os.remove(path)

        return len(consistent_pids) > 0 
开发者ID:ParadropLabs,项目名称:Paradrop,代码行数:40,代码来源:procmon.py

示例2: test_zombie_process__repr__

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def test_zombie_process__repr__(self, func=repr):
        self.assertEqual(
            repr(psutil.ZombieProcess(321)),
            "psutil.ZombieProcess process still exists but it's a zombie "
            "(pid=321)")
        self.assertEqual(
            repr(psutil.ZombieProcess(321, name='foo')),
            "psutil.ZombieProcess process still exists but it's a zombie "
            "(pid=321, name='foo')")
        self.assertEqual(
            repr(psutil.ZombieProcess(321, name='foo', ppid=1)),
            "psutil.ZombieProcess process still exists but it's a zombie "
            "(pid=321, name='foo', ppid=1)")
        self.assertEqual(
            repr(psutil.ZombieProcess(321, msg='foo')),
            "psutil.ZombieProcess foo") 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:18,代码来源:test_misc.py

示例3: test_ad_on_process_creation

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def test_ad_on_process_creation(self):
        # We are supposed to be able to instantiate Process also in case
        # of zombie processes or access denied.
        with mock.patch.object(psutil.Process, 'create_time',
                               side_effect=psutil.AccessDenied) as meth:
            psutil.Process()
            assert meth.called
        with mock.patch.object(psutil.Process, 'create_time',
                               side_effect=psutil.ZombieProcess(1)) as meth:
            psutil.Process()
            assert meth.called
        with mock.patch.object(psutil.Process, 'create_time',
                               side_effect=ValueError) as meth:
            with self.assertRaises(ValueError):
                psutil.Process()
            assert meth.called 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:18,代码来源:test_misc.py

示例4: test_exe_mocked

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def test_exe_mocked(self):
        with mock.patch('psutil._pslinux.readlink',
                        side_effect=OSError(errno.ENOENT, "")) as m1:
            with mock.patch('psutil.Process.cmdline',
                            side_effect=psutil.AccessDenied(0, "")) as m2:
                # No such file error; might be raised also if /proc/pid/exe
                # path actually exists for system processes with low pids
                # (about 0-20). In this case psutil is supposed to return
                # an empty string.
                ret = psutil.Process().exe()
                assert m1.called
                assert m2.called
                self.assertEqual(ret, "")

                # ...but if /proc/pid no longer exist we're supposed to treat
                # it as an alias for zombie process
                with mock.patch('psutil._pslinux.os.path.lexists',
                                return_value=False):
                    self.assertRaises(
                        psutil.ZombieProcess, psutil.Process().exe) 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:22,代码来源:test_linux.py

示例5: is_process_running

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def is_process_running(process_name, plex_container=None):
    try:
        for process in psutil.process_iter():
            if process.name().lower() == process_name.lower():
                if not plex_container:
                    return True, process, plex_container
                # plex_container was not None
                # we need to check if this processes is from the container we are interested in
                get_pid_container = "docker inspect --format '{{.Name}}' \"$(cat /proc/%s/cgroup |head -n 1 " \
                                    "|cut -d / -f 3)\" | sed 's/^\///'" % process.pid
                process_container = run_command(get_pid_container, True)
                logger.debug("Using: %s", get_pid_container)
                logger.debug("Docker Container For PID %s: %r", process.pid,
                             process_container.strip() if process_container is not None else 'Unknown???')
                if process_container is not None and isinstance(process_container, str) and \
                        process_container.strip().lower() == plex_container.lower():
                    return True, process, process_container.strip()

        return False, None, plex_container
    except psutil.ZombieProcess:
        return False, None, plex_container
    except Exception:
        logger.exception("Exception checking for process: '%s': ", process_name)
        return False, None, plex_container 
开发者ID:l3uddz,项目名称:plex_autoscan,代码行数:26,代码来源:utils.py

示例6: check_services

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def check_services(service_name):
    """
    check to see if certain services ar started
    """
    try:
        all_processes = set()
        for pid in psutil.pids():
            running_proc = psutil.Process(pid)
            all_processes.add(" ".join(running_proc.cmdline()).strip())
        for proc in list(all_processes):
            if service_name in proc:
                return True
        return False
    except psutil.ZombieProcess as e:
        # zombie processes appear to happen on macOS for some reason
        # so we'll just kill them off
        pid = str(e).split("=")[-1].split(")")[0]
        os.kill(int(pid), 0)
        return True 
开发者ID:NullArray,项目名称:AutoSploit,代码行数:21,代码来源:settings.py

示例7: _is_skip_process_running

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def _is_skip_process_running(self, user: str) -> bool:
        user_processes = []
        for process in psutil.process_iter():
            try:
                if process.username() == user:
                    user_processes.append(process.name())
            except (psutil.NoSuchProcess, psutil.ZombieProcess, psutil.AccessDenied):
                # ignore processes which have disappeared etc.
                pass

        for process in user_processes:
            if self._ignore_process_re.match(process) is not None:
                self.logger.debug(
                    "Process %s with pid %s matches the ignore regex '%s'."
                    " Skipping idle time check for this user.",
                    process.name(),
                    process.pid,
                    self._ignore_process_re,
                )
                return True

        return False 
开发者ID:languitar,项目名称:autosuspend,代码行数:24,代码来源:activity.py

示例8: location

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def location(pid):
    p = get_process(pid)
    if hasattr(p, "location"):
        return p.location
    try:
        path = p.cmdline()[0]
    except psutil.AccessDenied:
        path = os.popen("ps %d" % pid).read()
    except (AttributeError, IndexError, psutil.NoSuchProcess, psutil.ZombieProcess):
        return ""
    try:
        path = re.sub(r".*[0-9] (/[^-]*)-*.*", r"\1", path.split('\n')[-2]).strip()
    except:
        pass
    p.location = path
    return path 
开发者ID:laffra,项目名称:happymac,代码行数:18,代码来源:process.py

示例9: _check_connections

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def _check_connections(proc: psutil.Process, laddr: Tuple) -> bool:
    try:
        return laddr in [i.laddr for i in proc.connections()]
    except psutil.AccessDenied:
        return False
    except psutil.ZombieProcess:
        return False
    except psutil.NoSuchProcess:
        return False 
开发者ID:eth-brownie,项目名称:brownie,代码行数:11,代码来源:rpc.py

示例10: checkIfProcessRunning

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def checkIfProcessRunning(processName):
    '''
    Check if there is any running process that contains the given name processName.
    '''
    #Iterate over the all the running process
    for proc in psutil.process_iter():
        try:
            # Check if process name contains the given name string.
            if processName.lower() in proc.name().lower():
                return True
        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
            pass
    return False; 
开发者ID:sevagas,项目名称:macro_pack,代码行数:15,代码来源:utils.py

示例11: get_jobs

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def get_jobs(self, job_group):
        prefix = REDIS_JOBS_GROUP_PREFIX.format(job_group)
        result = {}

        jobs_map = self.SR.hgetall(prefix)

        for jobid, jobdata in jobs_map.iteritems():
            try:
                jobdata = json.loads(jobdata)

                if jobdata['status'] == 'RUNNING':
                    jobpid = jobdata['pid']
                    job_status = self._get_job_status(jobpid, jobdata['hash'])
                    jobdata.update(job_status)

                result[jobid] = jobdata

            except (ValueError, KeyError, psutil.ZombieProcess, psutil.AccessDenied):
                LOG.error('Invalid job value - deleting job {}::{}'.format(job_group, jobid))
                self.delete_job(job_group, jobid)
                continue

            if jobdata['status'] == 'DONE' and 'collected' not in jobdata:
                if jobid not in self.running_jobs[job_group]:
                    self._collect_job(jobdata)
                    self.SR.hset(job_group, jobid, json.dumps(jobdata))

        return result 
开发者ID:PaloAltoNetworks,项目名称:minemeld-core,代码行数:30,代码来源:jobs.py

示例12: test_process__repr__

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def test_process__repr__(self, func=repr):
        p = psutil.Process()
        r = func(p)
        self.assertIn("psutil.Process", r)
        self.assertIn("pid=%s" % p.pid, r)
        self.assertIn("name=", r)
        self.assertIn(p.name(), r)
        with mock.patch.object(psutil.Process, "name",
                               side_effect=psutil.ZombieProcess(os.getpid())):
            p = psutil.Process()
            r = func(p)
            self.assertIn("pid=%s" % p.pid, r)
            self.assertIn("zombie", r)
            self.assertNotIn("name=", r)
        with mock.patch.object(psutil.Process, "name",
                               side_effect=psutil.NoSuchProcess(os.getpid())):
            p = psutil.Process()
            r = func(p)
            self.assertIn("pid=%s" % p.pid, r)
            self.assertIn("terminated", r)
            self.assertNotIn("name=", r)
        with mock.patch.object(psutil.Process, "name",
                               side_effect=psutil.AccessDenied(os.getpid())):
            p = psutil.Process()
            r = func(p)
            self.assertIn("pid=%s" % p.pid, r)
            self.assertNotIn("name=", r) 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:29,代码来源:test_misc.py

示例13: test_zombie_process_is_running_w_exc

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def test_zombie_process_is_running_w_exc(self):
        # Emulate a case where internally is_running() raises
        # ZombieProcess.
        p = psutil.Process()
        with mock.patch("psutil.Process",
                        side_effect=psutil.ZombieProcess(0)) as m:
            assert p.is_running()
            assert m.called 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:10,代码来源:test_process.py

示例14: test_exe

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def test_exe(self):
        self.assertRaises(psutil.ZombieProcess, self.p.exe) 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:4,代码来源:test_osx.py

示例15: test_cmdline

# 需要导入模块: import psutil [as 别名]
# 或者: from psutil import ZombieProcess [as 别名]
def test_cmdline(self):
        self.assertRaises(psutil.ZombieProcess, self.p.cmdline) 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:4,代码来源:test_osx.py


注:本文中的psutil.ZombieProcess方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。