我们正在使用 CherryPy Web 服务器在一组 Linux 服务器上设置 Python Web 应用程序(它位于 nginx 负载平衡器后面,将流量发送到各个服务器)。我们正在从 Windows 服务器切换到 Linux 服务器,我们将在 CentOS 6.5 上运行。
在 Windows 上,我们有一个自定义服务管理器,用于启动和停止 Python 可执行文件,并在它们严重崩溃或因任何原因退出时重新启动它们。
我的问题是:在 Linux 上,有什么好工具可以做同样的事情?理想情况下,它会:
- 能够使用类似
service our_app start
或之类的工具手动启动和停止 Python 程序(我们基于 CherryPy 的服务器和应用程序)/etc/init.d/our_app start
。 - 如果程序退出或崩溃则自动重新启动
- 在系统启动时启动服务
到目前为止,我已经想出了各种可能性,按从最简单到最复杂的顺序排列:
- python 守护进程使用 /etc/init.d 脚本
- 暴发户使用如下简单的 upstart 脚本:一,二,三
- 导师:看起来很有趣,但是对于我们来说这比仅仅使用 upstart 有什么好处呢?
- 监控:超出了我们现阶段的需求,但也许可以在上述内容之上使用它?
注意:我是一名开发人员,在 Windows 方面的经验比在 Linux 方面的经验要多,在开发方面的经验比在操作/系统管理员方面的经验要多。只是说说而已。:-)