После нескольких часов попыток (а также попыток 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?)
Любая помощь очень ценится!