2015-01-27 2 views
0

하나를 제외한 모든 파이썬 스크립트를 제거해야합니다. 불행히도 모든 스크립트의 이름은 "pythonw.exe"와 비슷합니다. PID의 차이 만.Python kill scripts

처음에는 하나의 스크립트를 생존 상태로 남겨 둘 필요가 없습니다. 그 이유는 단지 taskkill /F /T /IM "python*" 명령으로 시스템의 모든 파이썬 스크립트를 죽이는 이유입니다.

하지만 지금은 다른 모든 스크립트를 자동화하는 하나의 스크립트가 있습니다. 스크립트는 제 간단한 "테스트 시스템"입니다. 그것은 개체 스크립트를 다시 작성, 시작, 중지 및 다시 시작합니다. 하지만 내 문제는 객관적인 스크립트 (10 - 20 스레드)에서 멀티 스레드입니다.

모르겠다. 모든 파이썬 스레드를 죽이는 법, 하나만 자동화하는 것 제외.

P. 윈도우 XP 파이썬 2.7.8 : 나는

PPS OS (난 이유를 알고하지 않습니다) 작업 목록 및 자동화 스크립트의 PID 얻기 위해 노력하고, 하나를 제외한 모든 스크립트를 살해했지만 작동하지 않습니다

+0

제어 된 방식으로 프로세스를 종료 할 수 있도록 일부 메타 레이어를 추가하십시오. 그렇지 않으면, 그것은 진짜 혼란 스럽습니다. ... – poke

+0

아주 많이 쓰레드를 죽이지는 않습니다. 전역 플래그를 설정하거나 종료하라는 요청을 큐에 넣음으로써 정상적으로 종료되게하십시오. Windows는'TerminateThread'를 가지고 있지만, 파이썬은 그것을 고맙게 여기지 않습니다. 스레드가 공유 된 전역 데이터를 업데이트하는 중일 경우 리소스 누출과 프로세스 상태가 일관되지 않게되고 프로세스간에 일관성없는 상태가 발생할 수 있습니다. – eryksun

+0

Unfortunatelly, 때때로 내 객체 스크립트가 정상적으로 작동하지 않고 모든 스레드를 죽여야합니다. – gek0n

답변

0

제 해결책은 테스트 코드를 exe 파일에 저장하는 것입니다. 이제는 이전처럼 모든 파이썬 스크립트를 죽일 수 있습니다. 누군가 다른 솔루션을 제공 할 것입니까?