Я не могу заставить рунит работать с шеф-поваром и пумой, это может быть проблемой рунита, но я не уверен

Вот скрипт runit:

#!/bin/sh
cd <%= @options[:release_path] %>
exec 2>&1
exec chpst -u <%= @options[:owner] %>:<%= @options[:group] %> <%= @options[:puma_command] %> -C config/puma.rb

Вот скрипт журнала runit:

#!/bin/sh
exec chpst -u root:root svlogd -tt <%= @options[:log_dir] %>

Вот как я заполняю эти переменные в chef:

deploy_path = "/home/#{node[:myapp][:user]}/#{cookbook_name}"
shared_path = "#{deploy_path}/shared"
rvm_context = '/usr/local/rvm/bin/rvm 2.1.0 do'

deploy_revision 'path/to/my/service' do
  restart_command do
    runit_service 'puma' do
      options(
        :release_path => "#{deploy_path}/current",
        :owner        => 'foo',
        :group        => 'foo',
        :puma_command => "#{rvm_context} bundle exec puma",
        :log_dir      => "#{shared_path}/log"
      )
    end
  end
end

Шеф-повар успешно завершил работу, но служба не была запущена.

Если я запускаю эту команду вручную, я получаю ошибку тайм-аута.

chef@cheftests:/etc/sv/puma$ sudo sv start puma
timeout: down: puma: 0s, normally up, want up

Если я запускаю точную команду, то puma_command заполняет скрипт runit, после чего запускается puma, в этот момент он полностью обходит runit, но я точно знаю, что скрипт puma работает.

0 ответов

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