3

我正在使用 SSH 在 Amazon Web Service 上远程启动 Tornado。当我通过以下方式启动它时它工作正常:

python startTornado.py

但是,在我的 SSH 会话超时或终止后,Tornado 服务器也立即停止,因此我无法再访问该网页。我做了很多搜索,但在谷歌上找不到答案。

如何在 SSH 会话终止后保持 Tornado 和站点运行?

4

3 回答 3

4

如果进程在前台运行,或者如果它尝试写入标准输出并且它输出到的终端不再存在,则该进程将在您注销时关闭。尝试启动服务器

nohup python startTornado.py &

nohup 命令将输出重定向到文件,最后的 & 在后台运行命令。或者,您可以使用 screen 实用程序,它允许您分离终端并在不同的 ssh 会话中重新附加它(有关详细信息,请参阅 screen 手册页)。

于 2012-09-02T19:06:17.187 回答
3

虽然上述所有解决方案都解决了眼前的问题,但您可能真正需要在生产中运行这些进程,控制它们(启动/重启/停止)是supervisor。它是基于 python 的,当您必须在 nginx 后面运行多个龙卷风实例时,它更有用。

于 2012-09-03T02:13:57.017 回答
1

除了nohup凯文提到的,disown如果你使用 bash,你也可以使用命令:

disown <job-id>
于 2012-09-02T19:13:18.237 回答