Bash에서 백그라운드 리소스 집약적인 작업을 시작하는 가장 좋은 방법은 무엇입니까?

Bash에서 백그라운드 리소스 집약적인 작업을 시작하는 가장 좋은 방법은 무엇입니까?

저는 WSL2(Win11 아래)의 Ubuntu 18.04에서 몇 가지 장기 실행 작업(하루 15분)을 실행하고 있습니다.

몇 번이나 터미널이 응답을 멈추고 다시 돌아오지 않았지만 리소스 사용량을 보면 작업이 여전히 실행 중임을 알 수 있었습니다.

대화형 세션이 일찍 종료되더라도 백그라운드 작업으로 유지되도록 이 작업을 가장 잘 시작하려면 어떻게 해야 합니까?

중요한 요구사항은 다음과 같습니다.

  • 작업은 백그라운드에서 실행되어야 합니다.
  • 문제가 발생하면 세션에 다시 연결할 수 있어야 합니다.
  • 제 시간에 다시 연결하지 못할 경우를 대비해 출력이 어딘가에 기록되어야 합니다.
  • 작업은 리소스 집약적이므로 시작 방법으로 인해 성능이 크게 저하되어서는 안 됩니다.
  • 이상적으로는 SSH를 통해서는 물론 로컬에서도 위의 모든 작업을 수행할 수 있어야 합니다.

만일을 대비해 실제 작업은 Anaconda 환경의 Python 3.9에서 실행되는 텐서플로우 작업입니다.

답변1

당신은 그것을 사용할 수 있습니다 screen.

연결이 끊어지면 간단히 세션에 다시 연결할 수 있습니다 screen -r.

원하는 경우 작업을 백그라운드로 전송하여 &기록 할 수도 있습니다 >>.

관련 정보