2014-01-28 4 views
1

나는 파이썬 3 스크립트를 가지고 있으며 부팅 할 때 실행됩니다. 그리고 그것은 출구에서 자유 로워지기를 바라는 일부 자원과 함께 작동합니다.파이썬 탐지 죽이기 요청

kill -6 $PID을 사용하여 해당 스크립트를 종료하면 해당 스크립트를 종료하려면 어떻게해야합니까?

또는 exit 명령을 보내고 스크립트에서이를 감지하는 방법에 대한 다른 아이디어.

답변

9

signal 모듈이 당신이 찾고있는 모듈입니다.

import singal 

def handler(signum, frame): 
    print 'Signal handler called with signal', signum 

signal.signal(signal.SIGABRT, handler) 

핸들러 함수 내에서 sys.exit()으로 종료 할 수 있습니다.

그러나 SIGINT (터미널에서 CTRL + C를 누를 때 발생하는 현상) 또는 SIGTERM을 사용하여 프로그램을 종료하는 것이 더 일반적입니다. 정리 코드가 없다면 SIGINT를 처리하기 위해 한 줄의 코드를 작성할 필요가 없습니다. 기본적으로 KeyboardInterrupt 예외가 발생합니다 (catch되지 않으면 그 이유가 없으므로 except: 문을 사용하면 안됩니다).), 프로그램이 종료됩니다.

+1

나는 SIGINT를 KeyboardInterrupt와 함께 사용하기로 결정했습니다. 고마워. –