将进程置于后台而不停止它 - (ctrl+z)?

cwd*_*cwd 19 linux unix process job-control

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

wget http://site.com/bigfile.zip
Run Code Online (Sandbox Code Playgroud)

然后决定我想把它移到后台,我知道我可以使用像ctrl+z然后bg 1(或者jobs如果需要的话首先)把它放在后台。

我的问题是是否有一种方法可以将工作从前台直接移动到后台而不停止它 - 就像另一个捷径 ctrl+z

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

Sky*_*awk 14

是的,绝对:屏幕(1)就是答案。

要开始,请添加 screen -R到 ~/.bash_profile 或等效文件,注销,然后重新登录。

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

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

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

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

有关更多信息,请阅读screen(1) 联机帮助页GNU Screen Manual