【发布时间】:2016-03-10 22:15:55
【问题描述】:
我有一些带有start/stop 的 SysVinit 脚本,它们用于远程服务器部署,因为现在我将 runit 用于其他部署目的,并且不想复制脚本(维护原因)。 runit 是否有可能调用这些脚本?或其他方法?先感谢您。
【问题讨论】:
我有一些带有start/stop 的 SysVinit 脚本,它们用于远程服务器部署,因为现在我将 runit 用于其他部署目的,并且不想复制脚本(维护原因)。 runit 是否有可能调用这些脚本?或其他方法?先感谢您。
【问题讨论】:
您不太可能通过runit 使用未经修改的这些脚本。 Runit 期望以run 开始的服务保持在前台并且不退出。
SysVInit 脚本需要 相反的 行为。因为它不执行任何进程监控(而缺少进程监控大概是你切换到runit的原因),SysVInit脚本期望服务在后台运行,并在启动服务后退出。
这是两个根本不兼容的模型。
您可以考虑使用systemd 而不是runit,它提供了良好的进程监控,同时还能够跟踪分叉的进程。
【讨论】:
ansible 来控制部署,我能想到的最佳方法是使用jinja2 模板在两个部署之间切换,所以每个细节都会在同一个模板文件中进行管理。一种解决方法。