我想要将一个长时间运行的脚本置于后台,我知道我可以使用以下命令来完成:
nohup ./install.sh &>/dev/null &
但是,我也意识到,如果我离开该会话,我将无法再看到它使用运行job
,因为如果我登录然后重新登录,它将在另一个会话中运行。
我的问题是,在后台运行脚本之前,是否有办法进行设置,以便稍后返回/前台显示该脚本?即使在我注销后重新登录后也可以?
答案1
如果您已经正确地将使用 stdXX 通道的后台任务变为可用,nohup
则它们将不再连接到终端,也不能重新连接到终端。
如果要分离某个进程并稍后重新附加到该进程,请使用screen
而不是nohup
。这为您提供了两个非独占选项:
- 使用多路复用选项切换到不同的屏幕以继续在同一会话中工作。
- 分离屏幕会话,然后再重新连接。您可以从不同的终端会话重新连接。(这是我的主要用途
screen
。)
有些人选择使用 screen 作为他们的终端环境。这样他们就可以在工作时切换会话。然后他们可以脱离 screen,让他们的会话保持就绪状态,以便下次准备工作时使用。