Из-за того, что unicorn_rails жалуется на разные версии гемов, мы перешли к запуску пакета exec unicorn_rails ... в наших файлах bluepill. Это изменение решило эту конкретную проблему, и все запускается и останавливается, но когда мы пробуем sudo bluepill status, мы теперь получаем
unicorn (pix: XXXXXX): unmonitored
Похоже, bluepill сейчас не контролирует процессы единорога. Он перезапустит дочерние процессы, если я остановлю их, но не буду перезапускать родительский процесс.
Я искал, но не нашел много информации об этой проблеме и надеялся, что кто-то сможет пролить на нее свет. Конфигурационный файл bluepill:
app_dir = "/opt/local/share/httpd/apps/xyz"
Bluepill.application('xyz', :log_file => "#{app_dir}/current/log/bluepill.log") do |app|
app.process('unicorn') do |process|
process.pid_file = "#{app_dir}/shared/pids/unicorn.pid"
process.working_dir = "#{app_dir}/current"
process.stdout = process.stderr = "#{app_dir}/shared/log/unicorn.err.log"
process.start_command = "bundle exec unicorn_rails -D -c #{app_dir}/current/config/environments/production/unicorn.rb -E production"
process.stop_command = "kill -QUIT {{PID}}"
process.restart_command = "kill -USR2 {{PID}}"
process.start_grace_time = 8.seconds
process.stop_grace_time = 5.seconds
process.restart_grace_time = 13.seconds
process.monitor_children do |child_process|
child_process.stop_command = "kill -QUIT {{PID}}"
child_process.checks :mem_usage, :every => 10.seconds, :below => 200.megabytes, :times => [3,5]
child_process.checks :cpu_usage, :every => 10.seconds, :below => 50, :times => [3,5]
end
end
end