bundlerのバージョンによってシェルスクリプト(shoryuken gem内の/bin/shoryuken)の起動方法が若干違っていてハマったのでメモしておきます。
bundle exec shoryuken -R -C /home/app/production/current/config/shoryuken/production.yml -d -L /home/app/production/current/log/shoryuken.log
で起動すると
1.16.2
/home/app/production/shared/vendor/bundle/ruby/2.2.0/bin/shoryuken -R -C /home/app/production/current/config/shoryuken/production.yml -d -L /home/app/production/current/log/shoryuken.log
1.10.6
ruby /home/app/production/shared/vendor/bundle/ruby/2.2.0/bin/shoryuken -R -C /home/app/production/current/config/shoryuken/production.yml -d -L /home/app/production/current/log/shoryuken.log
bundlerのバージョンによってrubyのプロセスとして起動するかどうかの違いがあるようです。
これが原因で、nagiosでcheck_procsを使ってプロセス監視をしていたところ、プロセスがrubyではなくなったのでPROCS CRITICAL
が出てしまっていました。
shoryukenのスクリプト
#!/usr/bin/env ruby
#
# This file was generated by RubyGems.
#
# The application 'shoryuken' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0"
if ARGV.first
str = ARGV.first
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
version = $1
ARGV.shift
end
end
gem 'shoryuken', version
load Gem.bin_path('shoryuken', 'shoryuken', version)