何時間も試した後(そして神とブルーピルも試した後)、この問題を解決する方法がまったくわからないので、ここで質問することにしました。
Railsアプリを持っています。Thinをアプリサーバーとして使用したい。Monitを使用してThinインスタンスを監視したいと思います。RVMを使用して、Rubyバージョンをローカルユーザーとして管理しています。
次のmonitファイルを設定しました。これは、おそらく私がやりたいことを実行しますが、実行しません。
check process thin-81
with pidfile /Users/Michael/Desktop/myapp/tmp/pids/thin.81.pid
start program = "/Users/Michael/.rvm/gems/ruby-1.9.2-p180/bin/thin start -c /Users/Michael/Desktop/myapp -e production -p 81 -d -P tmp/pids/thin.81.pid"
stop program = "/Users/Michael/.rvm/gems/ruby-1.9.2-p180/bin/thin stop -c /Users/Michael/Desktop/myapp -P tmp/pids/thin.81.pid"
if totalmem is greater than 150.0 MB for 2 cycles then restart
単にstart programコマンドライン(Monitの外)にコピー/貼り付けすると、機能します。stop program後でThinインスタンスを停止する場合も同様です。ただし、Monitを介して実行すると、機能しないようです。
-v詳細モードで実行すると、次のようになります。
monit: pidfile '/Users/Michael/Desktop/myapp/tmp/pids/thin.81.pid' does not exist
これは、Thinが初期化されないことを私に信じさせます。Monitはroot何かとして実行されますか?もしそうなら、私は「システム」RubyではなくRVMを使用しているので、明らかに正しいgemがインストールされていません。私は現在OSXを使用しています(ただし、最終的にはLinuxにデプロイする予定です)-これの原因が何であるかを誰かが知っていますか?また、Monitがroot経由で実行されている場合、どうすればRVMを使用させることができますか?または、Monitに開始/停止プログラムを実行するように指示することもできますMichael:staff(OSX上にあると思いますか?)
どんな助けでも大歓迎です!