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