19

私は最近、Upstart がとても好きになりました。以前は、God、Monit、および Bluepill を使用していましたが、これらのソリューションがあまり好きではないので、Upstart を試しています。

Foreman gem を使用して、.NET のプロセス用にいくつかの基本的な Upstart 構成ファイルを生成してきました/etc/init。ただし、これらの生成されたファイルは、クラッシュしたプロセスの再起動のみを処理します。> 150mbMonit、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'

どんな助けでも大歓迎です!

4

2 に答える 2

10

これを最後に追加すると、より多くのメモリを割り当てよmyapp-web-*.confうとする割り当て呼び出しが返されます。150mbENOMEM

limit rss 157286400 157286400

この時点でプロセスがクラッシュする場合と、そうでない場合があります。それはプロセス次第です!

これは、UpstartSourceでのテストです

于 2011-06-09T00:41:06.470 に答える