python, 프로그램(프로세스) 실행 확인 및 PID 검사 예제
#---------------------------------------------------
# 프로그램 이름(일부 포함)으로 실행 확인 및 PID 검색/출력
#---------------------------------------------------
import psutil
import time
import os
# ------------------------------
# 이름(일부분 포함)이 같은 프로세스가 있으면 True 반환
def checkIfProcessRunning(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
# ------------------------------
# 프로세스 이름 일부분으로 모든 대상 찾기
def findProcessIdByName(processName):
listOfProcessObjects = []
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name', 'create_time'])
if processName.lower() in pinfo['name'].lower() :
listOfProcessObjects.append(pinfo)
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
return listOfProcessObjects
# ------------------------------
# MAIN Program
print('My PID:', os.getpid()) # 현재 프로세스 PID 출력
program_name = 'python'
EXIST = checkIfProcessRunning(program_name)
if EXIST:
print(f'{program_name} 프로세스가 동작 중입니다.')
else:
print(f'{program_name} 프로세스가 없습니다.')
if EXIST:
listOfProcessIds = findProcessIdByName(program_name)
if len(listOfProcessIds) > 0:
print('프로세스 정보')
for elem in listOfProcessIds:
processID = elem['pid']
processName = elem['name']
processCreationTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(elem['create_time']))
print(processID, processName, processCreationTime)
else:
print('해당하는 프로세스 정보 없음')
'Python 활용' 카테고리의 다른 글
파이썬, 엑셀 파일 처리 및 자동화 (0) | 2022.05.21 |
---|---|
Pygame 간단한 예제 (0) | 2022.05.17 |
파이썬, faiss를 Windows에 설치하기 (0) | 2022.02.15 |
파이썬 소켓 프로그래밍 - 클라이언트/서버 예제 (0) | 2022.02.14 |
파이썬, 항목 유사도 검사 (0) | 2022.02.11 |