Python Web应用程序的进程监视和服务pipe理器

我们正在一堆Linux服务器上(使用nginx负载均衡器向各种服务器发送stream量)使用CherryPy web服务器来设置一个Python web应用程序。 我们正在从Windows服务器切换到Linux服务器,我们将在CentOS 6.5上运行。

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

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

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

到目前为止,我已经提出了各种可能性,从最简单到更复杂:

  • 带有/etc/init.d脚本的python-daemon
  • 新贵带着这样一个简单的新贵脚本: 一 , 二 , 三
  • 主pipe :看起来很有意思,但是对于我们来说,这比起刚刚使用的新贵来说会更好吗?
  • monit :在这个阶段比我们需要的更多,但也许可以在上面的一个之上使用它呢?

注意:我是一个开发人员,他比Windows有更多的Windows使用经验,以及比ops / sysadmin更多的开发经验。 只是在说'。 🙂

我投票支持Monit ,并且有很多很好的configuration示例 。

不要把Monit想成“比你需要的更多”。 它确实以轻量级和可靠的方式说明了这一点。 守护进程是稳定的,不需要保姆。 它将运行您需要的所有进程,PID,名称,连接和文件testing。 重新启动和操作行为可以自定义。 还有一个很好的GUI / TUI进程pipe理。