如何最好地在 bash 中启动后台资源密集型任务?

如何最好地在 bash 中启动后台资源密集型任务?

我在 WSL2 下的 Ubuntu 18.04(本身在 Win11 下)运行一些长时间运行的任务(15 分钟到一天)。

有几次我的终端停止响应并且再也没有回来,但我可以从资源使用情况看到任务仍在运行。

我怎样才能最好地启动此任务,以便即使我的交互式会话提前结束,它仍然是一个后台任务?

重要要求是:

  • 任务必须在后台运行
  • 如果发生问题,我应该能够重新连接到会话
  • 输出应该记录在某处,以防我没有及时重新连接
  • 该任务是资源密集型任务,因此启动它的方法不应大幅降低性能
  • 理想情况下,我应该能够在本地以及通过 SSH 执行上述所有操作

以防万一,实际任务是在 anaconda 环境中在 python 3.9 下运行的张量流作业。

答案1

你可以用screen它。

如果连接丢失,您可以简单地重新连接到会话screen -r

如果需要,还可以将任务发送到后台并进行日志&记录>>

相关内容