目标机器 Ubuntu 12.04 LTS,不能使用 Systemd。
所以大致就是这么几个选择
主要监视 unicorn(独立运行的 unicorn),需要崩溃时自动重启;以及将来可能用来监视 puppet agent 和 apache,看是不是死锁吃满 CPU 什么的。
你的选择是?以及理由?
用 Foreman 导出配置,系统是 upstart 的时候导出 upstart,是 systemd 的时候导出 systemd。
我倾向于选择系统自带的进程管理器,upstart 或者 systemd,优点:
缺点正如 @rei 的文章中提到的 Foreman 导出 upstart 配置后的遇到的问题一样。
总之这部分坑很多,没有标准答案,需要根据自己对系统的理解以及项目的需要灵活搭配调整。
一直用的是 CentOS puma 交给自身的 master 管理,没问题。内存占用过大了,直接 kill 了 worker 就重启了。 后台跑的 sleep 的 rake 任务用 god,最大的问题是 stop 的时候停不掉。目前是手工关掉 god 然后再 kill 掉进程。 supervised 搞不定 rvm 环境初始化,放弃了。monit 没搞明白,预感会遇到 rvm 环境问题,放弃,用 god 了。