Programming/Backend

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

BitSense 2020. 4. 27. 15:24

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

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