私は最近、Upstart がとても好きになりました。以前は、God、Monit、および Bluepill を使用していましたが、これらのソリューションがあまり好きではないので、Upstart を試しています。
Foreman gem を使用して、.NET のプロセス用にいくつかの基本的な Upstart 構成ファイルを生成してきました/etc/init
。ただし、これらの生成されたファイルは、クラッシュしたプロセスの再起動のみを処理します。> 150mb
Monit、God、Bluepill の場合のように、たとえばメモリを消費しているプロセスを Upstart に再起動させることができるかどうか疑問に思っていました。
Upstartのドキュメントを読んだところ、これが探しているもののようです。このような設定方法はわかりませんが。
私が基本的に望んでいることは非常に単純です。web
メモリ使用量が RAM の場合、プロセスを再起動したい> 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'
どんな助けでも大歓迎です!