0
我有一個PyTorch腳本16進程。以下是從主要處理的代碼片段:python子進程退出意外退出代碼-9
procs = [mp.Process(target=self.worker_wrapper, args=(i,)) for i in range(self.n_workers)]
for p in procs: p.start()
while True:
time.sleep(60)
for i, p in enumerate(procs):
self.logger.info('Check: id %d, exitcode %s, alive %s' % (
i, str(p.exitcode), str(p.is_alive())))
的worker_wrapper
是這樣的:
def worker_wrapper(self, id):
try:
self.worker(id)
except Exception as e:
self.logger.info(e)
self.logger.error(traceback.format_exc())
的worker
會做一些東西,應該永遠不會停止。它運作良好的開端,但通常在1天,運行,一些子進程(不是全部)意外退出,我得到的輸出是這樣的:
[2017-06-15 08:45:21,540] Check: id 13, exitcode -9, alive False
,並沒有發現任何異常。我試圖搜索exitcode -9,但沒有得到任何有用的東西。有人遇到過嗎?或者你有任何關於如何調試的想法?對不起,我無法提供最低限度的可重複代碼段,因爲它通常需要一天的時間才能重現。我正在使用python2.7
你說得對!我確實發現OOM殺了我的過程! –