Как использовать рунит для надзора за микросервисами рельсов

Я пытаюсь сделать какое-то непрерывное развертывание некоторых микро-сервисов rails на моем сервере Ubuntu, я думаю, что runit было бы хорошей идеей, чтобы контролировать эти процессы, а затем использовать миграции в chef для обновления микросервиса - но я попробую заставить один сервис работать. В основном установка, кажется, работает в развертывании chef, но приложение не запускается и не прослушивает 3000 (запуск вручную из папки развертывания работает после уничтожения server.pid)

Это машина с чистой подготовкой и единственное приложение rails на коробке - так что ошибка, упомянутая в журнале, я думаю, является признаком того, как я пытаюсь ее запустить.

Любые советы о том, как это может работать (альтернативы) приветствуются!

шаблон

#!/bin/bash
set -e
exec chpst -u root:root nohup rails server &  

Не похоже, что nohup - способ сделать это - файл журнала производит это. Я не понимаю, как сервер уже работает - первая запись в журнале говорит, что он уже работает... однако

2015-10-14_22:15:24.87117 A server is already running. Check     /opt/deploy/releases/39b30d7738bfba76462e257eb15100e1bea4edf0/tmp/pids/server.pid.
2015-10-14_22:15:25.32768 => Booting Thin
2015-10-14_22:15:25.32771 => Rails 4.2.0 application starting in development on http://localhost:3000
2015-10-14_22:15:25.32772 => Run `rails server -h` for more startup options
2015-10-14_22:15:25.32772 => Ctrl-C to shutdown server
2015-10-14_22:15:25.32773 Exiting

это повторяется несколько раз... пока эта ошибка больше не регистрируется.

2015-10-14_22:15:17.16187 A server is already running. Check     /opt/deploy/releases/39b30d7738bfba76462e257eb15100e1bea4edf0/tmp/pids/server.pid.
2015-10-14_22:15:17.60398 => Booting Thin
2015-10-14_22:15:17.60401 => Rails 4.2.0 application starting in development    on http://localhost:3000
2015-10-14_22:15:17.60402 => Run `rails server -h` for more startup options
2015-10-14_22:15:17.60403 => Ctrl-C to shutdown server
2015-10-14_22:15:17.60404 Exiting

если я PS AUX | grep rails это много этих записей

root     17709  3.6  1.4  93692 29468 ?       Rl   23:18   0:01 /usr/bin/ruby1.9.1 bin/rails server
root     17713  3.7  1.4  92112 28684 ?        Rl   23:18   0:01 /usr/bin/ruby1.9.1 bin/rails server
root     17717  3.7  1.3  91844 27696 ?        Rl   23:18   0:00 /usr/bin/ruby1.9.1 bin/rails server
root     17721  3.5  1.2  90164 26072 ?        Rl   23:18   0:00 /usr/bin/ruby1.9.1 bin/rails server
root     17725  3.6  1.2  90164 26192 ?        Rl   23:18   0:00 /usr/bin/ruby1.9.1 bin/rails server

Рецепт

deploy_revision("/opt/deploy") do
  revision "master"
  repository "https://repo" 
  user "root"
  action :deploy
  shallow_clone true
  keep_releases 3
  rollback_on_error true  # remove release if callbacks failed
  migrate true
  migration_command "rake db:migrate"
  before_migrate do
    execute "bundle install" do
      command "bundle install"
      cwd  "#{release_path}"
      user "root" 
    end
  end

  symlink_before_migrate.clear
  create_dirs_before_symlink.clear
  purge_before_symlink.clear
  symlinks.clear
end

runit_service "auth" do
  run_template_name "myapp"
  log_template_name "myapp"
  options({
    :app_env => "development",
    :app_home => "/opt/deploy/current",
    :data_dir => "/opt/deploy/data"
  })
  retries 3
  retry_delay 5
end

0 ответов

Другие вопросы по тегам