我在python3.4中使用烧瓶做了一些尝试,当我在nginx后面使用gunicorn运行我的应用程序时遇到了一些问题,并在登录ssh之后关闭了ssh会话,然后运行如下:
gunicorn -w 3 -n MultiServer -b 127.0.0.1:8081 app:app &只要我在我的ssh会话中,一切都很好。关闭它之后,仍然可以访问我的站点,但是一旦我按下了以下功能:
def get_audio(self, a_link, a_format="mp3"):
a_name = str(self._tmpDownloadDir + "/%(title)s.%(ext)s")
ex = 'youtube-dl -o "'+ a_name +'" --no-playlist --extract-audio --audio-format '+ a_format + ' "' + a_link + '"'
if subprocess.call(ex, shell=True) == 0:
a_name = self._moveAudio()
return (a_link, a_name, a_format)
else:
raise UnsuportedFormatException我发现了一个内部服务器错误。所有其他站点和功能都在正常工作。
以下是完整的代码:
特别是:YoutubeService
如前所述,只要我用ssh登录,一切都很好.我还设置了shell=True。
更新:
好的,我在我的app.py中尝试了这个:
if __name__ == "__main__":
handler = logging.FileHandler('/tmp/app.log')
handler.setLevel(logging.ERROR)
app.logger.addHandler(handler)
app.debug = True
app.run()但是日志仍然是空的,没有发生调试。
还修复了火奴鲁鲁日志:
gunicorn --error-logfile /tmp/app1.log -w 3 -n MultiServer -b 127.0.0.1:8081 app:app &它也是空的,只是一些关于工人的信息开始了。
发布于 2016-03-04 11:39:44
在使用ssh登录之后,我运行以下命令: -w 3 -n MultiServer -b 127.0.0.1:8081应用程序:app& 只要我在我的ssh会话中,一切都很好。在我关闭它之后,我的网站仍然可以访问,但是.
你不能那样跑火鸟。它是ssh会话的一部分,当您注销时它会被杀死(特别是,它失去了它的控制终端并获得了SIGHUPped)。
您可以通过使用--daemon标志来更好地使用gunicorn背景本身来解决这一问题,但是您应该考虑从一个适当的过程控制系统(如systemd或主管)中运行gunicorn。
https://stackoverflow.com/questions/35768687
复制相似问题