upstart 和 supervisord 之间的功能有重叠吗?
我有一个 java 进程,需要在启动时启动,并且还监视该进程以确保它保持运行(如果它出现故障,则尝试重新启动它)。
我可以使用 upstart 来满足这两个要求吗,或者我是否需要同时使用 upstart 和 supervisord?
答案1
如果您有 Upstart,那么它很可能已经是系统中的根进程(不一定非要如此,但通常是这样)。这意味着它会启动您的提示符以及所有服务。
Supervisor 擅长做同样的事情,以及管理程序组(以组为单位启动/停止等)并使用 RPC 允许对程序进行远程管理。
如果你没有利用最后两个功能,那么就没有真正的好处。但是,如果你使用 Supervisor,它必须由某个东西来启动。您可以从 rc.local 启动它,但随后它就成为您的可能故障点。