본문 바로가기
Programming/Backend

[Python] 이름으로 특정 프로세스 종료 시키기

by BitSense 2020. 4. 27.
반응형

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

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