저는 파이썬 스크립트를 가지고 있습니다. 스크립트는 몇 가지 작업을 수행하고 클래스의 메소드 몇 개를 사용하고, 로거 몇 개에 정보를 기록하고 SQS와 작동합니다 Amazon 대기열. 이런 식으로 뭔가 :파이썬 스크립트를 죽이고 마지막 줄을 실행합니다.
python script.py &
일 :
A = ClassA()
B = ClassB()
C = ClassC()
while True:
# pull messages from SQS
messages = sqs.pull_messages()
logger.info('Pulled messages from SQS')
A.do_something(messages)
logger.info('Doing something on class A')
# download something from the internet
data = B.download_something()
logger.info('Downloaded something')
C.insert_to_database()
스크립트는 역 추적, 내 리눅스 박스에이 같은 내 스크립트를 시작하기 때문에 메모리가 부족하거나 스크립트를 종료하지 않고 며칠 동안 잘 작동 나중에 상자로 돌아와서 스크립트가 여전히 실행되고 있지만 로거가 1 일 전까지 데이터를 기록했다는 것을 알 수 있습니다. 일반적인 패턴이 아니며, 때로는 스크립트가 몇 시간 후에 작동을 멈추고 때로는 중지되지만 결코 죽지는 않습니다.
내 질문은, 내가 과정을 죽일 때 전화하는 방법이 있습니까? kill pid
무슨 일이 일어 났는지 보시나요? 사후 사후 디버거를 시작하면 스크립트가 수행중인 작업이 나에게 표시되거나 해당 작업을 죽이기 전에 어떤 선이 표시됩니까? 이것을 취할 수있는 방법이 있습니까?
어쩌면 몇 가지 예외를 제기와 함께 사용할 수 있습니까? – gen
@gen, 나는 그렇게하지만, 내가 말했듯이, 스크립트는 실행을 멈추지 않고 나는 그것을 죽여야 만합니다. – PepperoniPizza