35

事情是这样的,我不得不在我家通过ssh连接到我机构的服务器来运行一个程序。我不希望我的程序在会话关闭时终止(我不知道screen)。

我所做的是按下Ctrl+Z然后键入bg,以便它在后台执行。会话终止。现在,当我从我的机构机器登录并键入ps -u username时,它显示程序仍在运行,但我无法将其置于前台。

我试过了fgjobs但这些命令没有给我任何输出。
请有人帮助我..

4

3 回答 3

30

如果您在没有使用“screen”命令的情况下启动了该过程,那么您将无法接管该过程。基本上,您不能接管在不同 shell 中启动的进程。

当您的会话终止时,所有 bg 进程将进入分离状态。虽然您可能能够看到此类过程的详细信息,但您无法在登录后将它们 fg 到 shell

于 2012-08-13T07:45:54.543 回答
11

如果某个进程已成为孤立进程,则不能将其“重新设置”到不同的 shell 并使用 fg、bg、^Z、^C 等来控制它。

您似乎在隐含地询问如何控制孤立的进程。由于您可以使用ps命令查看该进程,因此您有它的 pid。您可以将此 pid 用作kill命令的参数,这将允许您停止、继续或终止进程。您不能等待进程完成,但您可以使用“kill -0 <pid>”命令轮询它是否仍然存在。

于 2012-08-13T07:51:12.890 回答
6

https://serverfault.com/questions/55880/moving-an-already-running-process-to-screen

对这个问题给出了另一种看法,最佳答案建议使用 Reptyr。

于 2014-03-24T17:05:53.530 回答