运行Web应用程序的推荐方法是什么?

时间:2018-02-23 16:19:54

标签: python server daemon

我正在做一个Python网络服务器(例如使用Flask或Bottle等),我想启动它,并能够关闭SSH终端并让它运行。

以何种方式推荐使用pythonic?

  1. Create a daemon,并使用python myapp.py startpython myapp.py stop。然而,python-daemon模块几乎没有doc,不支持在退出之前触发一个动作(我向它添加了几行to support it),所以它'对于一个没有文档/没有真正维护过的模块,有点破解,所以即使它有效,我也不会百分之百满意。

  2. 使用nohup python myapp.py &,但缺点是你必须ps aux |grep py,然后找到相关的PID和kill 12345来阻止它。同样,它不允许在停止之前执行操作(例如将数据库保存到磁盘等),因此它不是一个非常好的解决方案。

  3. screen -dmS myapp python myapp.py启动,然后您可以从SSH终端注销。然后,您可以使用screen -r myapp再次连接到它,然后CTRL + C可以停止它(提供KeyboardInterrupt已妥善处理)。这就是我目前使用的内容。但我不确定是否使用screen让服务器永远运行是一个好主意(如果日志记录确实是非常的话会发生什么?还有引入screen层的风险让它臃肿?)

  4. 另一种清洁解决方案?我希望有一个比1,2,3更清洁的解决方案都有缺点。

  5. 注意:我希望避免安装新的管理员(新贵或主管),并尽可能使用尽可能少的工具,以避免新的复杂层。

0 个答案:

没有答案