SSH断开连接后如何保持程序运行?[重复]


Answers:


22

“屏幕”很可能是您想要的。它允许您随意断开连接并重新连接。SSH进入服务器后,在启动程序之前先运行屏幕。Ctrl-a,Ctrl-d将断开您的连接(无论程序继续执行)。返回时,“ screen -r”将重新连接您,就像您从未离开过。

将其视为文本终端的VNC或RDP。在许多教程中搜索“使用屏幕”。

编辑添加:现在,我将推荐使用tmux,尤其是与脚本tmx结合使用时。拆分窗格(垂直和水平)并调整其大小的能力是整个屏幕的一大福音。


5
顺便说一句,如果您的连接超时或在您仍连接到屏幕上时出现类似情况,屏幕将继续运行。一些有用的命令:ctrl + a,ctrl + d =从屏幕分离,screen -r =重新连接到屏幕,screen -x =以共享模式连接到屏幕(可用于教学等,两个用户可以共享在同一屏幕上),按ctrl + a,按esc =进入滚动模式(按q再次退出)。注意:如果通过键入“屏幕程序”启动屏幕,它将立即在屏幕中启动程序,但是如果退出,则会丢失缓冲区。仅键入“屏幕”将为您提供持久的终端。

克里斯,也有用的答案。

18

nohup 是将运行另一个命令并使其不受“挂断”信号影响的命令。

您可以像这样简单地运行它:

nohup command

但您还需要重定向stdin,stdout和stderr。有关更多信息,请参见手册页。

您可能还希望将其放在后台。

您还需要知道kill命令才能最终终止它。


是的,很多很多!那么容易))

这是我使用的那个。非常非常容易。使用tee重定向标准输入,标准输出,和标准错误。
Ritwik Bose
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.