Я недавно очень полюбил Upstart.Раньше я использовал God, Monit и Bluepill, но мне не очень нравятся эти решения, поэтому я пробую Upstart.
Я использовал гем Foreman для генерации некоторых базовых файлов конфигурации Upstart.для моих процессов в /etc/init
.Однако эти сгенерированные файлы обрабатывают только возрождение сбойного процесса.Мне было интересно, можно ли сказать Upstart перезапустить процесс, который потребляет, например, > 150mb
памяти, как вы это сделали бы с Monit, God или Bluepill.* и это выглядит как то, что я ищу.Хотя я понятия не имею, как настроить что-то вроде этого.
То, что я в основном хочу, довольно просто.Я хочу перезапустить процесс web
, если используется память > 150mb
ram.У меня есть следующие файлы:
|-- 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'
Любая помощь высоко ценится!