python判断进程是否存在

1. 进程名 

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



上面代码网友提出有问题,暂时没验证,记录下修改后的
# coding:utf-8
import psutil
 
# pl = psutil.pids()
# for pid in pl:
#     if psutil.Process(pid).name() == 'notepad++.exe':
#         print(pid)
 
 
def checkprocess(processname):
    pl = psutil.pids()
    for pid in pl:
        if psutil.Process(pid).name() == processname:
            return pid
 
# print(isinstance(checkprocess("notepad++.exe"),int))
 
if isinstance(checkprocess("notepad++.exe"),int):
    print("进程存在")
else:
    print("进程不存在")

 

 2. 进程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)