事情是这样的,我需要通过ssh连接到机构服务器并从家里运行一个程序。但我不希望当会话关闭时终止我的程序(我不知道screen)。
我按下Ctrl+Z
,然后输入bg
让它在后台执行。然后会话被关闭了。现在,当我从机构机器登录并输入ps -u username
时,它显示该程序仍在运行,但我无法将其带到前台。
我尝试使用fg
和jobs
命令,但这些命令没有给我任何输出。
请有人帮帮我。
fg
、bg
、^Z
、^C
等控制它。ps
命令查看该进程,因此你有它的pid。你可以将该pid作为参数传递给kill
命令,这将允许你停止、继续或终止该进程。你无法等待进程完成,但是你可以轮询使用kill -0 <pid>
命令来检查是否仍存在该进程。https://serverfault.com/questions/55880/moving-an-already-running-process-to-screen
这里有一个关于这个问题的替代方案,顶部答案建议使用Reptyr。
reptyr
,然后运行reptyr [PID]
- 但如果一个进程(例如,一个bash脚本)启动了另一个(子)进程,则可能无法正常工作。 - BurninLeo