Ruby 我能';我不能让runit与厨师和彪马合作,这可能是runit的问题,但我';我不确定

Ruby 我能';我不能让runit与厨师和彪马合作,这可能是runit的问题,但我';我不确定,ruby,automation,chef-infra,puma,runit,Ruby,Automation,Chef Infra,Puma,Runit,以下是运行脚本: #!/bin/sh cd <%= @options[:release_path] %> exec 2>&1 exec chpst -u <%= @options[:owner] %>:<%= @options[:group] %> <%= @options[:puma_command] %> -C config/puma.rb Chef成功完成运行,但服务未启动 如果手动运行此命令,则会出现超时错误 chef@ch

以下是运行脚本:

#!/bin/sh
cd <%= @options[:release_path] %>
exec 2>&1
exec chpst -u <%= @options[:owner] %>:<%= @options[:group] %> <%= @options[:puma_command] %> -C config/puma.rb
Chef成功完成运行,但服务未启动

如果手动运行此命令,则会出现超时错误

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

如果我运行exact命令,用
puma_命令
填充runit脚本,然后puma成功启动,此时它完全绕过了runit,但我确信puma脚本处于工作状态。

您正在传递runit_服务资源以重新启动_命令-您从哪里得到这个想法?我认为您应该使用runit_服务来设置服务,然后传递一个类似“sv restart puma”的字符串作为restart_命令。我认为是厨师IRC频道值得信任的人提到你可以做到这一点。他不会说怎么把它连在一起。我想这对全世界来说都太神秘了,不知道如何使用厨师/美洲狮/运行它。我已经放弃了用厨师来管理彪马。
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