在Python中创建[self]respawning应用程序的正确方法
我正在使用用 python 编写的 jabber 机器人来记录一些 MUC 谈话。有时它会因某些网络或 XMPP 问题而下降。在这种情况下,我必须自己重新开始。目标是使其“自我重生”。
关于如何做到这一点,我有一些变体。
- Bot 是一个进程。另一个过程 监视其活动并启动它 如果机器人死了。
- 主进程产生机器人 子进程并控制它。
我还认为守护机器人进程在这里很有用。 正如您所猜到的,平台是 Linux。
解决这个问题的正确方法是什么?
I am using jabber bot written in python to log some MUC talks. Sometimes it drops on some network or XMPP problems. In this case I have to start it again by myself. The goal is to make it "self-respawning".
I have some variants about how to do it.
- Bot is one process. Another process
monitors its activity and starts it
if bot died. - Main process spawns bot
subprocess and controls it.
Also I think daemonizing bot process is useful here.
Platform is Linux, as you could guess.
What is the right way to solve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用的是 ubuntu 之类的东西,请尝试研究 upstart 及其自动守护进程和“重生”功能。这是一篇很好的关于运行与启动进程的一般博客文章。
我还听说过有关 supervisdord 的好消息。
If you're using something like ubuntu, try looking into upstart and its automatic daemonization and "respawn" feature. Here's a good general blogpost about running vs. starting processes.
I've also heard good things about supervisdord.