본문 바로가기
파이썬

파이썬에서 프로세스 이름으로 PID를 얻는 크로스 플랫폼 방법

by º기록 2020. 10. 6.
반응형

이름이 같은 여러 프로세스가 호스트에서 실행 중입니다. python 또는 jython 을 사용하여 이름으로 해당 프로세스의 PID를 얻는 교차 플랫폼 방법은 무엇입니까?

 

해결 방법

 


import psutil

PROCNAME = "python.exe"

for proc in psutil.process_iter():
    if proc.name() == PROCNAME:
        print(proc)

내 컴퓨터에서 다음과 같이 인쇄됩니다.

<psutil.Process(pid=3881, name='python.exe') at 140192133873040>

편집 2017-04-27-프로세스의 이름 (), cmdline () 및 exe ()에 대해 이름을 확인하는 고급 유틸리티 함수가 있습니다.

import os
import psutil

def find_procs_by_name(name):
    "Return a list of processes matching 'name'."
    assert name, name
    ls = []
    for p in psutil.process_iter():
        name_, exe, cmdline = "", "", []
        try:
            name_ = p.name()
            cmdline = p.cmdline()
            exe = p.exe()
        except (psutil.AccessDenied, psutil.ZombieProcess):
            pass
        except psutil.NoSuchProcess:
            continue
        if name == name_ or cmdline[0] == name or os.path.basename(exe) == name:
            ls.append(name)
    return ls

 

참조 페이지 https://stackoverflow.com/questions/550653

 

 

반응형

댓글