我最近变得非常喜欢Upstart。以前我一直在使用 God、Monit 和 Bluepill,但我不太喜欢这些解决方案,所以我正在尝试 Upstart。
我一直在使用 Foreman gem 为我的流程生成一些基本的 Upstart 配置文件/etc/init
。但是,这些生成的文件仅处理崩溃进程的重生。我想知道是否可以告诉 Upstart 重新启动一个消耗例如> 150mb
内存的进程,就像使用 Monit、God 或 Bluepill 一样。
我通读了Upstart 文档,这看起来就像我正在寻找的东西。虽然我不知道如何配置这样的东西。
我基本上想要的很简单。如果内存使用量是ram ,我想重新启动我的web
进程。> 150mb
这些是我拥有的文件:
|-- myapp-web-1.conf
|-- myapp-web-2.conf
|-- myapp-web-3.conf
|-- myapp-web.conf
|-- myapp.conf
它们的内容是:
myapp.conf
pre-start script
bash << "EOF"
mkdir -p /var/log/myapp
chown -R deployer /var/log/myapp
EOF
end script
myapp-web.conf
start on starting myapp
stop on stopping myapp
myapp-web-1.conf / myapp-web-2.conf / myapp-web-3.conf
start on starting myapp-web
stop on stopping myapp-web
respawn
exec su - deployer -c 'cd /var/applications/releases/20110607140607; cd myapp && bundle exec unicorn -p $PORT >> /var/log/myapp/web-1.log 2>&1'
非常感谢任何帮助!