如何从以前的shell恢复后台作业? [重复]

Modified on: Sat, 30 Jun 2018 05:42:00 +0800
  

可能重复:
  如何拒绝正在运行的进程并将其关联到新的屏幕外壳?

我发布了一个持续很长时间的命令。
我必须断开连接,所以我在退出之前将其移到后台(使用CTRL + Z和bg)。

像这样:

$ my_command
***command is beeing executed and is taking a long time***
^Z
[1]+  Stopped                 my_command
$ bg
[1]+ my_command &
$ exit

我重新连接并且可以在进程列表中看到该命令,但无法使用fg进行恢复。

$ fg
-bash: fg: current: no such job

如何在前台恢复工作?

作者:Community,SamK

最佳答案

如果你已经在某个地方开始了某种事情,背景它,现在需要将它附加到一个新终端,你可以使用reptyr重新附加它。 (man页面将命令汇总为“将正在运行的程序重新命名为新终端”。)

您无法在“jobs”命令中看到它或使用“fg”将其置于前台的原因是因为这些命令实际上是内置于shell中的。它们在技术上不会将进程与您连接的终端分离,因此当您退出shell时,它们也应该退出(当您尝试退出时应该收到警告)。


相关问答

添加新评论