Monit + RVM + Thin в OSX / Linux

После нескольких часов попыток (а также попыток God и Bluepill) я решил задать свой вопрос здесь, потому что я совершенно не знаю, как решить эту проблему.

У меня есть Приложение 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

Если я просто скопирую / вставлю файл запустить программу в командной строке (вне Monit), она работает. То же самое касается программы остановки , чтобы впоследствии остановить экземпляр Thin. Однако запуск его через Monit, похоже, не работает.

Запуск его в подробном режиме -v дает следующее:

monit: pidfile '/Users/Michael/Desktop/myapp/tmp/pids/thin.81.pid' does not exist

Это наводит меня на мысль, что Thin никогда не инициализируется. Monit работает как root или что-то в этом роде? Потому что, если это произойдет, то, очевидно, не будут установлены правильные драгоценные камни, поскольку я использую RVM, а не "системный" Ruby. В настоящее время я использую OSX (но со временем развернусь на Linux) - кто-нибудь знает, в чем может быть причина? И если Monit запускается через root, как я могу заставить его использовать RVM независимо? Или я могу сказать Monit запускать / остановить программы как Майкл: Staff (я предполагаю, что это будет на OSX?)

Любая помощь очень ценится!

7
задан Michael van Rooijen 3 May 2011 в 00:15
поделиться