Python Web 应用程序的进程监控和服务管理器

Python Web 应用程序的进程监控和服务管理器

我们正在使用 CherryPy Web 服务器在一组 Linux 服务器上设置 Python Web 应用程序(它位于 nginx 负载平衡器后面,将流量发送到各个服务器)。我们正在从 Windows 服务器切换到 Linux 服务器,我们将在 CentOS 6.5 上运行。

在 Windows 上,我们有一个自定义服务管理器,用于启动和停止 Python 可执行文件,并在它们严重崩溃或因任何原因退出时重新启动它们。

我的问题是:在 Linux 上,有什么好工具可以做同样的事情?理想情况下,它会:

  1. 能够使用类似service our_app start或之类的工具手动启动和停止 Python 程序(我们基于 CherryPy 的服务器和应用程序) /etc/init.d/our_app start
  2. 如果程序退出或崩溃则自动重新启动
  3. 在系统启动时启动服务

到目前为止,我已经想出了各种可能性,按从最简单到最复杂的顺序排列:

  • python 守护进程使用 /etc/init.d 脚本
  • 暴发户使用如下简单的 upstart 脚本:
  • 导师:看起来很有趣,但是对于我们来说这比仅仅使用 upstart 有什么好处呢?
  • 监控:超出了我们现阶段的需求,但也许可以在上述内容之上使用它?

注意:我是一名开发人员,在 Windows 方面的经验比在 Linux 方面的经验要多,在开发方面的经验比在操作/系统管理员方面的经验要多。只是说说而已。:-)

答案1

我投票监控,还有很多良好的配置示例为了它。

不要认为 Monit “超出了您的需要”。它以轻量级和可靠的方式准确地完成了它所说的工作。守护进程很稳定,不需要照看。它将运行您需要的所有进程、PID、名称、连接和文件测试。可以自定义重新启动和操作行为。并且有一个用于进程管理的极简 GUI/TUI。

相关内容