저는 백그라운드에서 실행되는 파이썬 프로세스가 있으며, 스크립트가 종료 될 때만 일부 출력을 생성하고 싶습니다. 내가 터미널에서 kill {PID}
작업을 수행하는 경우 KeyboardInterupt
예외 sys.exit()
전화 handle_exit()
을 높이는 호출파이썬 프로세스가 종료 될 때 atexit()를 실행하십시오.
def handle_exit():
print('\nAll files saved in ' + directory)
generate_output()
atexit.register(handle_exit)
제대로하지만 handle_exit를 호출하지 않고 스크립트를 종료().
백그라운드에서 실행중인 프로세스를 종료하고 종료하기 전에 handle_exit()
을 실행하는 방법이 있습니까?
atexit만으로는 불가능합니다. 문서에''이 모듈을 통해 등록 된 함수는 파이썬이 처리하지 않는 신호, 파이썬의 치명적인 내부 오류가 탐지되거나 os._exit()가 호출 될 때 프로그램이 종료 될 때 호출되지 않습니다. '[여기] (https://docs.python.org/2/library/atexit.html) –