我启动了从一个 ssh 会话到目标计算机的进程T
。我进行 ssh 操作的系统A
挂起。我使用另一台机器上的 ssh 检查,B
该进程仍在运行T
。现在我希望能够重新启动A
而不影响进程的运行T
。我忘记使用 screen 或 byobu 等。由于A
当前挂起,我什至无法执行 actrl z 和 disown 或其他操作。可以做什么?我不希望进程终止,但我希望能够重新启动A
已挂起的进程。
答案1
您可以尝试向进程发送 SIGCONT 信号,但正如 rozcietrzewiacz 提到的,如果进程需要终端访问,您可能需要对文件描述符进行一些处理。
杀死-继续PID
如果仍然显示为T
,则可能需要用户输入。
答案2
您可以修改附加到该进程的文件描述符,但一般来说,这样做需要使用一些有点肮脏的技巧。整个概念很好地涵盖在这个问题。在您的情况下运行这样的程序是否retty
会成功,取决于该程序的严格程度过程监视自己的文件描述符的状态。