【问题标题】:How to make Tornado do not stop when ssh connection goes down?当 ssh 连接断开时,如何使 Tornado 不停止?
【发布时间】:2013-04-14 06:35:00
【问题描述】:

我在 linode 上启动了 Tornado 示例 Hello World (http://www.tornadoweb.org/en/stable/),我从我的 comp(命令行)通过 linode 上的 ssh 登录并开始像

python start.py

但问题是,当我的本地计算机进入睡眠状态时,我从命令行的 ssh 连接断开并且龙卷风示例停止。如何使该示例永远运行?

start.py 是

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

【问题讨论】:

  • 最好创建一个 init 或 upstart 脚本(这会将其转换为服务/守护程序)并将其添加到系统启动中。即使您重新启动它,它也会自动运行脚本。

标签: python shell python-2.7 tornado


【解决方案1】:

nohup python start.py & 运行它

这将在后台运行程序,并且在 SSH 连接断开时不会被终止。您也可以通过断开与服务器的连接来测试它。

【讨论】:

    【解决方案2】:

    您还可以在 linux 中使用screen 实用程序并在那里运行命令。当您的 ssh 连接断开时,屏幕将被分离。要稍后连接到屏幕,请使用 -r(-R) 参数。

    【讨论】:

    • 我个人更喜欢屏幕解决方案。对于初学者,你可以像这个 screen bash 一样尝试它,你的 python 执行 push Ctrl + a 然后 Ctrl + d 回到这个 bash 会话,使用 screen -r
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2014-07-31
    • 2015-05-02
    • 2021-07-16
    相关资源
    最近更新 更多