可能的重复:
如何否认正在运行的进程并将其关联到新的屏幕外壳?
bg
我启动了一个持续时间很长的命令。我不得不断开连接,因此在退出之前,我将其移至后台(使用 CTRL+Z 和)。
像这样的东西:
$ 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
如何在前台恢复我的工作?
答案1
如果您已经在某处启动了某些操作,将其设置为后台,现在需要将其附加到新终端,则可以使用reptyr
重新连接它。 (该man
页面将该命令总结为“将正在运行的程序重新设置为新终端的父级”。)
您无法在“jobs”命令中看到它或使用“fg”将其带到前台的原因是因为这些命令实际上是内置于 shell 中的。从技术上讲,它们不会将进程与您所连接的终端分离,因此当您退出 shell 时,它们应该也退出(当您尝试退出时应该会收到警告)。