Python 스크립트를 종료하면 while 루프 호출도 중지됩니다.

Python 스크립트를 종료하면 while 루프 호출도 중지됩니다.

저는 Python 스크립트를 사용하여 일반적으로 스크린 세션에서 비대화형으로 파일을 업로드합니다. 대규모 업로드의 경우 때로는 스크립트가 종료되어 스크립트가 중지되는 경우가 있습니다(Python이나 OS에 의해 확실하지 않음).

...
uploading file000100 ...
uploading file000101 ...
Killed

스크립트의 오류 코드는 137입니다. 추가 "진단" 정보를 얻는 방법을 모르겠습니다.

업로드를 계속하기 위해 스크립트를 while 루프에 넣었습니다.

python3 upload_files.py; \
while [[ $? == 137 ]]; do \
      python3 upload_files.py; \
      sleep 1; \
done

그러나 스크립트가 종료되면 while 루프가 끝나기 때문에 이 트릭은 작동하지 않습니다. 말이 돼?

답변1

성공할 때까지 항상 동일한 스크립트를 다시 시작하려면 다음을 수행할 수 있습니다.

while ((1)) ; do
   python3 script.py && break
done

즉, 파이썬이 성공적으로 완료된 후에만 무한 루프를 끊습니다. 그렇지 않으면 무한 루프가 인계되어 스크립트를 다시 시작합니다.

관련 정보