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