반응형
보통 콘솔에서 동작을 시킬때 동일한 프로그램이 좀비형태로 안죽고 있거나, 일정 시간 오버해서 동작하는 경우 강제로 종료시켜야할 필요성이 있을때 사용하면 유용합니다.
import psutil
# python filename.py로 실행된 프로세스를 찾음
for proc in psutil.process_iter():
try:
# 프로세스 이름, PID값 가져오기
processName = proc.name()
processID = proc.pid
if processName[:6] == "python": // 윈도우는 python.exe로 올라옴
commandLine = proc.cmdline()
# 동일한 프로세스 확인. code 확인
if 'filename.py' in commandLine:
parent_pid = processID #PID
parent = psutil.Process(parent_pid) # PID 찾기
for child in parent.children(recursive=True): #자식-부모 종료
child.kill()
parent.kill()
else:
print(processName, ' ', commandLine, ' - ', processID)
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess): #예외처리
pass
print('동일 프로세스 확인 완료....')
반응형