事情是这样的,我不得不在我家通过ssh
连接到我机构的服务器来运行一个程序。我不希望我的程序在会话关闭时终止(我不知道screen
)。
我所做的是按下Ctrl+Z
然后键入bg
,以便它在后台执行。会话终止。现在,当我从我的机构机器登录并键入ps -u username
时,它显示程序仍在运行,但我无法将其置于前台。
我试过了fg
,jobs
但这些命令没有给我任何输出。
请有人帮助我..
如果您在没有使用“screen”命令的情况下启动了该过程,那么您将无法接管该过程。基本上,您不能接管在不同 shell 中启动的进程。
当您的会话终止时,所有 bg 进程将进入分离状态。虽然您可能能够看到此类过程的详细信息,但您无法在登录后将它们 fg 到 shell
如果某个进程已成为孤立进程,则不能将其“重新设置”到不同的 shell 并使用 fg、bg、^Z、^C 等来控制它。
您似乎在隐含地询问如何控制孤立的进程。由于您可以使用ps命令查看该进程,因此您有它的 pid。您可以将此 pid 用作kill命令的参数,这将允许您停止、继续或终止进程。您不能等待进程完成,但您可以使用“kill -0 <pid>”命令轮询它是否仍然存在。
https://serverfault.com/questions/55880/moving-an-already-running-process-to-screen
对这个问题给出了另一种看法,最佳答案建议使用 Reptyr。