つまってしまったので教えてください。
Rais,Rubyは初めて書いているので、見当違いのことをしているかもしれません。

RailsからOpen3のcapture3メソッドを実行してデーモンを立ち上げたいのですが、「cannot load such file」となってしまいました。

# top_controller.rb(Railsからの呼び出し処理)

def daemon_start
    cmd = "/bin/app start;"
    out, err, status = Open3.capture3(cmd)
    p out               
    p err              
    p status.exitstatus

    redirect_to root_path
end


# app(呼び出されるapp)

#!/usr/bin/env ruby
require 'bundler/setup'
require 'daemons'
require 'pathname'

base_dir = Pathname('../../').expand_path(__FILE__)
Daemons.run(
  base_dir.join('bin/bot'),
  app_name: 'bot',
  dir_mode: :normal,
  dir: base_dir.join('tmp'),
  log_dir: base_dir.join('log'),
  log_output: true
)


#表示内容(err)

"bin/app:3:in `require': cannot load such file -- daemons (LoadError)\n\tfrom bin/app:3:i"


以下、試してみたことです。

  • appをターミナルから実行
    →問題なく起動します。

  • ruby -Iでgemのパスを追加
    cmdを
    cmd = "ruby -I /Users/owner/.rvm/gems/ruby-2.2.0/gems/daemons-1.2.3/lib /bin/app start;"
    と変えたところ、エラーは出なくなります。
    (-Iで/Users/owner/.rvm/gems/ruby-2.2.0/gems/を渡すと最初のエラーと変わらずです)

  • requireしているパスを絶対パスに変更
    同じ様に、エラーは出なくなります。

  • app内で$LOAD_PATH.unshiftする
    $LOAD_PATH.unshift('/Users/owner/.rvm/gems/ruby-2.2.0/gems/daemons- 1.2.3/lib')
    同じ様に、エラーは出なくなります。
    ただ、上2つもそうなのですが、appから呼ばれるbotの中でrequireしているgemが見つからないとなってしまいます。


#そのときのエラー表示内容
(botがrequireしているretryableの中でrequireしているファイルが見つからない)

/Users/owner/.rvm/gems/ruby-2.2.0/gems/retryable-2.0.2/lib/retryable.rb:1:in `require': cannot load such file -- retryable/version (LoadError)

【質問】
appをターミナルから実行すれば正常に動いているので、パスが通ってないことが問題と考えています。
使用するgemに上で試したことと同じ対応をすべてのgemにすればなんとかなるのかもしれませんですが、それなりの数があるため避けたいです。
もっといい方法でパスを通す方法があるでしょうか?
なんでもいいので教えていただきたいです。
足りない情報があれば追記します。
よろしくお願いします。

【環境】
Rails:4.1
Ruby:2.2.0(Railsで使用)
Ruby:2.2.0(appで使用)