了解如何正确地将后台进程置于前台

了解如何正确地将后台进程置于前台

我想要将一个长时间运行的脚本置于后台,我知道我可以使用以下命令来完成:

nohup ./install.sh &>/dev/null &

但是,我也意识到,如果我离开该会话,我将无法再看到它使用运行job,因为如果我登录然后重新登录,它将在另一个会话中运行。

我的问题是,在后台运行脚本之前,是否有办法进行设置,以便稍后返回/前台显示该脚本?即使在我注销后重新登录后也可以?

答案1

如果您已经正确地将使用 stdXX 通道的后台任务变为可用,nohup则它们将不再连接到终端,也不能重新连接到终端。

如果要分离某个进程并稍后重新附加到该进程,请使用screen而不是nohup。这为您提供了两个非独占选项:

  • 使用多路复用选项切换到不同的屏幕以继续在同一会话中工作。
  • 分离屏幕会话,然后再重新连接。您可以从不同的终端会话重新连接。(这是我的主要用途screen。)

有些人选择使用 screen 作为他们的终端环境。这样他们就可以在工作时切换会话。然后他们可以脱离 screen,让他们的会话保持就绪状态,以便下次准备工作时使用。

相关内容