为什么12factor建议不要进行daemonize进程?

时间:2014-11-03 00:41:11

标签: 12factor microservices

12factor recommends not to daemonize processes。这样做的缺点是什么?

3 个答案:

答案 0 :(得分:7)

他们不是在寻找守护进程本身,而是在管理该进程并确保其正常运行。他们引用围绕守护进程构建的kludgey框架实例,其中守护进程不是为了管理而编写的,因此需要过多的资源来重新启动它,在它之后进行清理等等。

他们指出并建议使用系统管理设施软件,包括smf(Solaris),upstart(Linux),launchd(OSX),甚至是古老的{{ 1}}和init(较旧的Unix版本和基于BSD的发行版)。他们没有提到ttys(也是Linux),但这可能是时机。他们也没有提到systemdinetd,它们也使基于网络的守护进程的管理和重启变得简单易行。

所以他们并不是真的建议不要守护进程;他们建议你在发明漂亮的守护进程服务流程之后,重新发明围绕它的管理框架。通过了解如何管理服务器来开发您的服务器,这可能会使涉及的总体工作量更少。按目前的说法,这是一种xinetd态度。

答案 1 :(得分:0)

我将添加到主管列表中,immortal A * nix跨平台(OS无关)主管,简化了12个因素的实践。

  

时间戳

     

默认情况下,日志中的选项时间戳设置为false,这有利于遵循12因子的应用程序,如果日志的结构为“JSON”,则可以轻松解析。

答案 2 :(得分:0)

基本上,目的是从容器中删除服务管理逻辑,并将其作为基础架构的一部分

考虑崩溃服务的场景 - 而不是重新启动映像中的服务,这可能无助于服务器加载或出现故障的情况,基础架构可能决定在不同的服务器上重新启动它