• 技术文章 >常见问题 >Python常见问题

    python3怎么判断进程是否存在

    silencementsilencement2020-02-05 10:45:36原创3891

    通过进程名判断

    import psutil
     
    def judgeprocess(processname):
        pl = psutil.pids()
        for pid in pl:
            if psutil.Process(pid).name() == processname:
                print(pid)
                break
        else:
            print("not found")
            
    if judgeprocess('notepad++.exe') == 0:
        print('success')
    else:
        pass

    通过进程ID判断

    import errno
    import os
    import sys
     
     
     
    def pid_exists(pid):
        """Check whether pid exists in the current process table.
        UNIX only.
        """
        if pid < 0:
            return False
        if pid == 0:
            # According to "man 2 kill" PID 0 refers to every process
            # in the process group of the calling process.
            # On certain systems 0 is a valid PID but we have no way
            # to know that in a portable fashion.
            raise ValueError('invalid PID 0')
        try:
            os.kill(pid, 0)
        except OSError as err:
            if err.errno == errno.ESRCH:
                # ESRCH == No such process
                return False
            elif err.errno == errno.EPERM:
                # EPERM clearly means there's a process to deny access to
                return True
            else:
                # According to "man 2 kill" possible error values are
                # (EINVAL, EPERM, ESRCH)
                raise
        else:
            return True

    推荐学习《Python教程》!

    专题推荐:进程
    上一篇:python3怎么看编码形式 下一篇:vs怎么写python代码

    相关文章推荐

    • Python fork方法:创建新进程• python 如何结束进程

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网