【问题标题】:How to bring an Orphaned Background Process back to Foreground?如何将孤立的后台进程带回前台?
【发布时间】:2012-08-09 09:50:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: shell process ps


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 其他帖子的简短回答:有可能。安装 reptyr,然后运行 ​​reptyr [PID] - 但如果一个进程(例如 bash 脚本)启动另一个(子)进程,这可能不起作用。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-12
        • 1970-01-01
        • 2019-11-22
        • 2022-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多