首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CherryPy不监听SIGHUP //守护CherryPy脚本

CherryPy不监听SIGHUP //守护CherryPy脚本
EN

Stack Overflow用户
提问于 2019-04-24 07:45:11
回答 1查看 300关注 0票数 0

我已经用CherryPy框架开发了一个Telegram Bot,并且正在尝试将它部署到EC2实例上。

因为我的python脚本不是守护进程,所以当它接收到SIGHUP (我的终端关闭)时,CherryPy似乎关闭了它。我不希望这种情况发生,而且似乎有一种方法可以修改CherryPy处理这些信号的方式:

来自文档

您可以通过修改:attr:SignalHandler.handlers ({信号名称:回调}对)来修改应用程序侦听的信号以及它在接收信号时所做的操作。默认设置为: 处理程序= {'SIGTERM':self.bus.exit,'SIGHUP':self.handle_SIGHUP,‘SIGUSR1 1’:self.bus.graceful}

我的当前脚本有一个带有相关服务器配置字典的cherrypy.config.update()和一个cherrypy.server.quickstart()。我还能让它不处理信号吗?

还是应该将脚本部署为守护进程?如果是这样的话,我如何才能在Ubuntu中实现它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 14:22:36

CherryPy附带了内置的守护进程,将配置更新和quickstart之间的调用组合起来,如下所示:

代码语言:javascript
复制
cherrypy.config.update(...)

cherrypy.process.plugins.Daemonizer(cherrypy.engine).subscribe()
cherrypy.process.plugins.SignalHandler(cherrypy.engine).subscribe()

cherrypy.quickstart(...)

您可能考虑的另一个选择是在一个进程控制器(如Supervisor (http://supervisord.org/) )后面运行您的服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55824824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档