我有一個python腳本,工作和無限循環,該腳本做了幾件事情,並從類中使用了幾個方法,將信息記錄到我有和SQS一起工作的幾個記錄器亞馬遜排隊。事情是這樣的:殺python腳本並看到最後一行執行
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()
該腳本正常工作了好幾天不會耗盡內存或退出腳本,因爲一個回溯,我開始了我這樣的腳本在我的Linux機器:
python script.py &
天后來我可以回到盒子,發現腳本仍在運行,但記錄器直到1天前記錄數據,這不是一種常見模式,有時腳本會在幾小時後停止工作,有時會在幾天後停止工作,但不會被殺死。
所以我的問題是,有沒有一種方法我叫殺死進程kill pid
,看看發生了什麼?開始驗屍調試器會告訴我腳本正在做什麼,或者在我殺死之前在哪一行?有什麼辦法可以接受嗎?
可能提高一些例外? – gen
@gen,我這樣做,但正如我所說,腳本不停止運行,我必須殺死它。 – PepperoniPizza