실행, 상태, 그리고 복구
lingo push은 실행을 엔진에 제출한 뒤 종료합니다. 또는 --wait을 사용하면 완료될 때까지 기다렸다가 결과를 기록합니다. 어느 경우든 실행은 터미널이 아니라 서버에 남아 있으므로, 터미널을 닫아도 나중에 같은 체크아웃에서 결과를 다시 가져올 수 있습니다. 이 페이지에서는 이 동작 방식과 실행이 실패했을 때 복구하는 방법을 설명합니다.
실행 상태#
각 push는 제출한 실행 정보를 머신별 파일에 기록합니다:
~/.lingo/runs/<hash>.json<hash>는 프로젝트의 절대 경로를 기준으로 생성되므로, 체크아웃마다 별도의 항목이 생깁니다. 이 파일에는 실행 ID, 엔진, org가 저장되며, 이후 lingo pull가 결과를 찾는 데 필요한 정보가 모두 들어 있습니다.
이 상태는 프로젝트 상태가 아니라 머신별 상태입니다. 즉, 리포지토리가 아니라 홈 디렉터리에 저장되며 커밋되지도 않습니다.
나중에 가져오기#
실행은 서버에 유지되므로, 푸시해 두고 자리를 비웠다가 완료되면 가져올 수 있습니다:
lingo push
# later — same machine, same checkout
lingo pullpull는 이 프로젝트의 가장 최근 실행 결과를 가져옵니다. 또한 lockfile에 로컬 수정 사항이 있는지 확인하고, --force를 지정하지 않는 한 이를 덮어쓰지 않습니다. 자세한 내용은 lingo pull을 참고하세요.
실행 상태는 절대 그 머신을 벗어나지 않으므로, 다른 머신이나 CI 실행기는 다른 곳에 푸시된 실행을 pull할 수 없습니다. 이 경우 No saved run state for this project 오류가 발생하거나, 그 머신에서 가장 최근에 푸시한 실행을 가져오게 됩니다. CI에서 만든 번역을 내 머신으로 가져오려면, CI에서 번역 결과를 커밋한 다음 git pull하세요. CI/CD를 참고하세요.
프로젝트를 옮긴 경우
실행 상태 파일명은 프로젝트의 절대 경로를 기준으로 정해집니다. push와 pull 사이에 디렉터리를 옮기면 조회에 실패할 수 있습니다. 수동으로 복구해야 한다면 실행 ID는 여전히 ~/.lingo/runs/에 남아 있습니다.
실패한 실행 복구하기#
실행이 중간에 실패했다면(예: 타임아웃, 일시적인 엔진 오류) 다음 명령을 사용하세요:
lingo resumeresume는 다시 번역하지 않고 엔진에 캐시된 결과에서 출력을 다시 내보냅니다. 따라서 복구된 실행에는 크레딧이 다시 소모되지 않습니다. 무엇을 복구했고 무엇은 다시 연결하지 못했는지도 함께 알려줍니다.
resume가 복구하지 못한 대상을 보고하면, 일반 backfill로 채우면 됩니다:
lingo push --backfill-missing상황별로 이렇게 사용하세요#
| 상황 | 명령어 |
|---|---|
| 터미널을 닫은 뒤 결과 받기 | lingo pull |
| CI에서 번역하고 결과를 커밋하기 | lingo push --wait한 다음 커밋 |
| 실행이 중간에 실패한 경우 | lingo resume |
| 재개 후 일부가 비어 있는 경우 | lingo push --backfill-missing |