보통 콘솔에서 동작을 시킬때 동일한 프로그램이 좀비형태로 안죽고 있거나, 일정 시간 오버해서 동작하는 경우 강제로 종료시켜야할 필요성이 있을때 사용하면 유용합니다.

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('동일 프로세스 확인 완료....')

WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret