如果我通过在命令行中正常键入它来启动进程,例如
wget http://site.com/bigfile.zip
然后决定我想把它移到后台,我知道我可以使用类似ctrl z然后bg 1(或者首先需要获取id的作业)将它放在后台.
我的问题是,如果有一种方法可以将作业从前台直接移动到背景而不停止它 – 就像ctrl z之外的另一个快捷方式那样做.
我也意识到我可以附加&到原始命令的末尾在后台启动它,但问题是关于何时在前台启动进程然后意识到你想将它移动到后台.
解决方法
是的,绝对:
screen(1)就是答案.
首先,将屏幕-R添加到〜/ .bash_profile或等效,注销,然后重新登录.
要继续在后台运行,请按Control-A然后按N.这将在前台创建一个新的终端屏幕,同时在后台无缝地继续您的运行过程.
按Control-A然后“获取已打开的屏幕的交互列表,或按Control-A然后按数字直接切换到特定屏幕.
您最初的要求是能够将流程移动到后台而不会停止它.屏幕有两个额外的好处,如果你想一次做多件事,这些好处是巨大的:
>您可以比使用Control-Z,bg,fg等更流畅地切换进程.
>如果终端会话断开连接,您的进程(如wget http://example.com/bigfile.iso)将不会终止!重新连接时,所有shell会话都将在那里等待您.
有关更多信息,请阅读screen(1) manpage或GNU Screen Manual.