Upstart和Supervisord之间的区别是什么?

25

UpstartSupervisord是否可以互换?它们能一起工作吗?我想在我的系统(Debian)启动时以root身份运行Python程序。启动后,如果程序崩溃,我希望进程管理器能够继续运行该程序。哪个更适合做到这一点?

1个回答

36

Upstart是作为传统init守护进程的替代而开发的。Supervisord是一个进程管理器(具有许多功能),但仍需要自身的init守护进程来运行。

我个人认为,对于我大部分使用情况来说,Upstart已经足够了。从你的问题中,我认为它也会很适合你。

有四个Upstart段落应该特别引起您的兴趣:start on、stop on、respawn和exec。您可以在http://upstart.ubuntu.com/cookbook/上阅读更多关于它们的信息。

如果您仍然更喜欢使用Supervisord路线,那么这似乎是一个不错的帖子,可以帮助您入门-https://serverfault.com/questions/96499/how-to-automatically-start-supervisord-on-linux-ubuntu


我知道这是一个老问题,但似乎Upstart的创建是因为通过init守护程序运行东西是不好的。这被认为是不好的吗? - Ryan-Neal Mes
1
@Ryan-NealMes,我认为称通过init运行东西是不好的,这有点牵强。从我看到的情况来看,这实际上是一个便利问题。在Ubuntu上,许多现代软件包同时安装了init和upstart脚本。比较这两个脚本,你会发现init脚本非常庞大,而upstart脚本则很小且整洁。在upstart出现之前,我从未编写过守护进程初始化器,因为那真的太麻烦了。但是有了upstart后,我完全不介意编写它们。 - David Baucum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接