Bashでバックグラウンドリソース集約的な作業を始めるための最良の方法は何ですか?

Bashでバックグラウンドリソース集約的な作業を始めるための最良の方法は何ですか?

私はWSL2(Win11の下)のUbuntu 18.04でいくつかの長期実行ジョブ(1日15分)を実行しています。

何度も端末が応答を停止して戻ってこなかったが、リソース使用量を見ると、ジョブがまだ実行中であることがわかりました。

インタラクティブセッションが早期に終了してもバックグラウンドジョブとして維持されるように、このジョブを最もよく開始するにはどうすればよいですか?

重要な要件は次のとおりです。

  • ジョブはバックグラウンドで実行する必要があります。
  • 問題が発生した場合は、セッションに再接続できる必要があります。
  • 時間に再接続できない場合に備えて、出力をどこかに記録する必要があります。
  • タスクはリソース集約的であるため、起動方法によってパフォーマンスが大幅に低下してはいけません。
  • 理想的には、SSHを介してだけでなく、ローカルでも上記のすべての操作を実行できるはずです。

実際の作業は、Anaconda環境のPython 3.9で実行されるTensorFlowタスクです。

答え1

あなたはそれを使用することができますscreen

接続が切断されたら、単にセッションに再接続できますscreen -r

必要に応じて、ジョブをバックグラウンドで送信して&記録することもできます>>

関連情報