我正在使用 SSH 在 Amazon Web Service 上远程启动 Tornado。当我通过以下方式启动它时它工作正常:
python startTornado.py
但是,在我的 SSH 会话超时或终止后,Tornado 服务器也立即停止,因此我无法再访问该网页。我做了很多搜索,但在谷歌上找不到答案。
如何在 SSH 会话终止后保持 Tornado 和站点运行?
我正在使用 SSH 在 Amazon Web Service 上远程启动 Tornado。当我通过以下方式启动它时它工作正常:
python startTornado.py
但是,在我的 SSH 会话超时或终止后,Tornado 服务器也立即停止,因此我无法再访问该网页。我做了很多搜索,但在谷歌上找不到答案。
如何在 SSH 会话终止后保持 Tornado 和站点运行?
如果进程在前台运行,或者如果它尝试写入标准输出并且它输出到的终端不再存在,则该进程将在您注销时关闭。尝试启动服务器
nohup python startTornado.py &
nohup 命令将输出重定向到文件,最后的 & 在后台运行命令。或者,您可以使用 screen 实用程序,它允许您分离终端并在不同的 ssh 会话中重新附加它(有关详细信息,请参阅 screen 手册页)。
虽然上述所有解决方案都解决了眼前的问题,但您可能真正需要在生产中运行这些进程,控制它们(启动/重启/停止)是supervisor。它是基于 python 的,当您必须在 nginx 后面运行多个龙卷风实例时,它更有用。
除了nohup
凯文提到的,disown
如果你使用 bash,你也可以使用命令:
disown <job-id>