2016-07-20 2 views
0

기본적으로 나는 언제든지 중지하고 재개 할 수있는 스크립트를 작성 중입니다. 따라서 사용자가 프로그램을 실행하기 위해 PyCharm console라고 말하면 원하는 때마다 중지 버튼을 클릭하면됩니다.PyCh スクリプト이 PyCharm 콘솔에서 중지되면 대기 및 완료 프로세스가 있습니까?

이제 일부 변수를 저장하고 종료하기 전에 진행중인 함수를 종료해야합니다. 어떤 기능을이 용도로 사용합니까?

나는 이미 atexit.register()을 사용해 보았습니다. 또한 프로그램을 종료하기 전에 진행중인 기능이 완료되었는지 어떻게 확인합니까? 당신이 신호를 잡으려고 할 수 있습니다처럼 사전에

덕분에

답변

0

것 같습니다.

신호가 OS에서 프로세스로 전송되는 것을 중지하라는 메시지가 표시되면이를 catch 한 다음 종료하기 전에 정리를 수행 할 수 있습니다. 많은 다른 신호가 있습니다. 예를 들어, CTRL + C를 누르면 SIGINT 신호가 OS에 의해 보내져 프로세스를 멈추게 할 수 있습니다. 그러나 많은 것들이 있습니다.

는 여기를 참조하십시오 : 신호 라이브러리 How do I capture SIGINT in Python?

여기 : https://docs.python.org/2/library/signal.html

1

는 정말 나쁜 해결 방법을 사용하여 해결. SIG * 함수를 포함하여 파이썬에서 종료하는 것과 관련된 모든 함수를 사용했지만 PyCharm 응용 프로그램에서 "Stop"버튼을 눌러 파이썬 프로그램을 중지 할 때 고유하게 종료 신호를 잡는 방법을 찾지 못했습니다. 마지막으로 tkinter를 사용하여 백그라운드 창에서 실행중인 프로그램과 함께 빈 창을 열고, 프로그램 실행을 닫거나 중지하는 데 사용하여 임시 해결책을 얻었습니다. 훌륭하게 작동하고 atexit를 실행하는 것과 마찬가지로 SIG * 신호를 포착합니다. 어쨌든 @scrineym 덕분에 대단히 감사합니다. 최종 버전을 개발할 때 도움이되는 유용한 정보를 많이주었습니다.