upstart 是用来启动服务,supervisord 是用来监控服务的吗?

upstart 是用来启动服务,supervisord 是用来监控服务的吗?

upstart 和 supervisord 之间的功能有重叠吗?

我有一个 java 进程,需要在启动时启动,并且还监视该进程以确保它保持运行(如果它出现故障,则尝试重新启动它)。

我可以使用 upstart 来满足这两个要求吗,或者我是否需要同时使用 upstart 和 supervisord?

答案1

如果您有 Upstart,那么它很可能已经是系统中的根进程(不一定非要如此,但通常是这样)。这意味着它会启动您的提示符以及所有服务。

Supervisor 擅长做同样的事情,以及管理程序组(以组为单位启动/停止等)并使用 RPC 允许对程序进行远程管理。

如果你没有利用最后两个功能,那么就没有真正的好处。但是,如果你使用 Supervisor,必须由某个东西来启动。您可以从 rc.local 启动它,但随后它就成为您的可能故障点。

答案2

您可以使用 upstart 在启动时启动该进程,并在该进程退出时重新启动它。新贵食谱非常全面,后者的功能记录在重生

相关内容