【问题标题】:Tornado stopped running on AWS immediately after I terminate my remote session我终止远程会话后,Tornado 立即停止在 AWS 上运行
【发布时间】:2012-09-03 10:13:57
【问题描述】:

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

python startTornado.py

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

在我的 SSH 会话终止后,如何让 Tornado 和网站继续运行?

【问题讨论】:

    标签: ssh amazon-web-services tornado


    【解决方案1】:

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

    启动服务器
    nohup python startTornado.py &
    

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

    【讨论】:

    • 谢谢凯文,这很好用。我认为如果输出文件充满错误,就会出现问题。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      disown <job-id>
      

      【讨论】:

      • 谢谢凯。从disown的文档来看,似乎不需要输出文件吧?这样就解决了错误日志过多的问题。
      • @lichen19853 没问题 :) 我不确定你的意思,disown 接受一个参数,即工作 ID。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      相关资源
      最近更新 更多