将进程放在后台而不停止-(ctrl + z)?


16

如果我通过在命令行中正常键入启动进程,例如

wget http://site.com/bigfile.zip

然后决定将其移到后台,我知道我可以使用类似的东西ctrl+z,然后bg 1(或jobs首先需要获取ID)将其放在后台。

我的问题是,是否有一种方法可以将作业从前台直接移到后台而又不停止它-就像除此之外的另一种快捷方式一样ctrl+z

我也意识到我可以追加&到原始命令的末尾以在后台启动它,但是问题是关于何时在前台启动一个进程然后意识到要将其移到后台。

Answers:


14

是的,绝对是:screen(1)是答案。

要开始使用,请添加screen -R到〜/ .bash_profile或同等版本,然后注销并重新登录。

要继续在后台运行,请按Control-A,然后按N。这将在前台创建一个新的终端屏幕,同时在后台无缝继续您的运行过程。

按Control-A,然后按“”以获取您已打开的屏幕的交互式列表,或者按Control-A,然后按数字以直接切换到特定屏幕。

您最初的要求是能够在不停止进程的情况下将其移至后台。屏幕还有两个额外的好处,如果您想一次做多个事情,这些好处是巨大的

  1. 与使用Control-Z,bg,fg等相比,您可以更加流畅地在进程之间切换。
  2. 如果您的终端会话断开连接,则您的进程(如wget http://example.com/bigfile.iso)将不会终止!重新连接时,所有的Shell会话都将在那里等您。

有关更多信息,请阅读screen(1)联机帮助页GNU屏幕手册


1
只要确保您已经screen首先安装了软件包即可:)
George Tasioulis 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.