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

我想要背景长时间运行的脚本,我知道我可以使用以下方法:

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

但是,我也意识到,如果我离开该会话,就不能再看到它正在运行,因为如果我login并重新login,它将在另一个会话中运行。

我的问题是,在我在后台运行脚本之前,有没有办法设置它,以便稍后返回/前台脚本? 即使我已经注销,然后回来?

如果您使用nohup正确地执行任务,则stdXX通道将不再连接到terminal,也不能重新连接到terminal。

如果你想分离一个进程,然后重新附加到它使用screen而不是nohup 。 这给你两个非排他性的select:

  • 使用多路复用选项切换到其他屏幕,以继续在同一个会话中工作。
  • 分离屏幕会话并重新附加到后面。 您可以从不同的terminal会话重新附加。 (这是我的主要用途screen 。)

有些人select使用屏幕作为他们的terminal环境。 这允许他们在工作时切换会话。 然后,他们可以脱离屏幕,并准备下一个准备工作的时间。