是新贵还是主管用来做同一件事?


13

我有一些基于jvm的进程,我需要确保每当服务器重新启动时以及由于意外错误等原因而停止时启动。

我正在运行Ubuntu 12.04以防万一。

我已经看过样本新贵脚本,并且我倾向于这种方式,但是我想了解新贵或监督者之间的差异。

它们是用于完全相同的目的还是在功能上存在差异?

Answers:


12

区别在于,新贵是init的替代品,而supervisored是Process Control System。此说明在受监管的网站上给出:

它具有一些与程序相同的目标,例如启动程序,daemontools和runit。与这些程序中的某些程序不同,它不应作为“进程ID 1”的替代init运行。相反,它旨在用于控制与项目或客户相关的过程,并且旨在在启动时像任何其他程序一样启动。

这意味着超级用户本身可以通过新贵启动,可以通过新贵的作业文件或sysV初始化脚本来启动。就个人而言,出于以下原因,我选择使用流程管理器而不是普通的init进行启动:

  1. 服务未正确守护
  2. 已知该服务死于需要监视和重新启动的需求

当程序没有关闭stdout和stderr并继续将数据写入那些位置时,该程序无法正确守护的一个示例。Supervisord可以处理该输出的日志记录。


我知道,不确定我是否完全理解,但是我认为,如果启动失败,新贵还可以重新启动该过程。
Blankman

@Blankman我想现代初始化系统的原因更少
jordanm

我会注意到,对于无法正确守护的服务,正确的解决方案将是修复所述服务导致其无法正确守护的错误。不过,我认为类似supervisor的东西对#2有用。
Shadur

1
@shadur我不同意这是最好的解决方案。该过程可能不属于您,因此您无法修复它。即使您可以修复它,无论您修复了多少错误,您都永远不会知道没有更多的潜伏性,而几年后,由于某些情况从未暴露过,您的过程将再次在生产中终止。之前,例如异常的网络或数据库状况。您是否希望网站保持脱机状态,使用户沮丧,花费金钱?否。您需要一个工具来重新启动服务。期。
乔纳森·哈特利
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.