如何将孤立的后台进程带回前台?

Rud*_*thy 28 shell process ps

好吧,就像这样,我必须ssh通过进入我所在机构的服务器从家里运行一个程序.我不希望我的程序在会话结束时被终止(我不知道screen).

我做的是按Ctrl+Z,然后键入,bg以便它在后台执行.会议终止了.现在,当我从我的机构登录并输入时ps -u username,它显示程序仍在运行,但我无法将其带到前台.

我试过fg,jobs但这些命令不给我任何输出.
请有人帮帮我..

kni*_*der 22

如果您在不使用"screen"命令的情况下启动了该过程,则无法接管该过程.基本上,您无法接管在不同shell中启动的进程.

当您的会话终止时,所有bg进程都将进入分离状态.虽然您可能能够看到此类过程的详细信息,但您无法从登录后将其转换为shell


Stu*_*rks 9

如果一个进程已经成为孤儿,你不能"重新设置父级"到一个不同的外壳和使用FG,BG,^ Z,^ C,等来控制它.

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


chi*_*him 5

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

给出了关于这个问题的另一种观点,最佳答案建议使用Reptyr.

  • 其他帖子的简短回答:有可能.安装`reptyr`,然后运行`reptyr [PID]` - 但是如果一个进程(例如,bash-script)启动另一个(子)进程,这可能不起作用. (2认同)