将流程/作业“拉”到后台

将流程/作业“拉”到后台

我知道用 & 来终止命令,然后按 Ctrl-Z 再按 bg [pid] 将其移到后台,我也知道 nohup。

但是假设你启动了一个进程,而该进程所花的时间比预期的要长得多,有没有办法可以将这个进程从另一个终端屏幕拉到后台,这样即使我从服务器上注销,该进程也会继续?

答案1

  • 暂停:

    CtrlZ

  • 后台重启:

    bg
    
  • 并告诉 shell 在注销(SIGHUP)时不要杀死它:

    disown
    

    注意:Plaindisown会将该作业从 shell 的jobs列表中完全删除,而disown -h仅将其标记为“注销时不终止”但保留在列表中。

答案2

首次登录时务必运行“screen”。查看https://launchpad.net/byobu 我使用 byobu 在每次登录时自动启动屏幕会话。这样,我可以自动运行屏幕,并且我可以在需要时断开会话或启动新窗口。

相关内容