如何将ssh作业发送到后台

yas*_*sar 8 ssh bash io-redirection

我通过ssh登录到远程服务器并启动了一个php脚本.最重要的是,它需要17个小时才能完成,有没有办法打破连接但是保持脚本执行?我没有进行任何输出重定向,所以我看到了所有的输出.

Ste*_*uts 8

你现在可以停止这个过程吗?如果是这样,启动屏幕,启动过程并使用ctrl-a然后按ctrl-d分离屏幕.使用screen -r稍后检索会话.

这应该在大多数发行版中都可用,如果没有,那么肯定会有一个包.

  • 如果您无法阻止它,您可以使用reptyr将终端窃取到屏幕会话中.见http://serverfault.com/questions/24425/can-i-nohup-screen-an-already-started-process/272526#272526 (3认同)

hov*_*yan 8

ctrl + z 
Run Code Online (Sandbox Code Playgroud)

会暂停它.比类型

bg
Run Code Online (Sandbox Code Playgroud)

把它发送到后台.记下流程的PID以供以后使用;)

编辑:我忘记了,你必须执行

disown -$PID
Run Code Online (Sandbox Code Playgroud)

其中$ PID是您的流程的pid

之后,关闭终端后,该过程不会被杀死.