몇 시간 동안 노력한 후 (그리고 신과 블루 필을 시도한 후) 나는이 문제를 해결하는 방법을 전혀 알지 못하기 때문에 여기서 질문을하기로 결정했습니다.OSX/Linux의 Monit + RVM + Thin
레일 앱이 있습니다. 내 응용 프로그램 서버로 Thin을 사용하고 싶습니다. 내 Thin 인스턴스를 모니터하기 위해 Monit을 사용하고 싶습니다. RVM을 사용하여 Ruby 버전을 로컬 사용자로 관리합니다.
I assumably 내가하고 싶은 것을 할 것이나, 그 설정 한 다음 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
합니다. Monit이 root
같은 것으로 동작합니까? 왜냐하면 내가 RVM을 사용하고 있고 "시스템"루비를 사용하지 않기 때문에 분명히 올바른 보석이 설치되지 않기 때문입니다. 나는 현재 OSX를 사용 중이다. (결국 리눅스에 배포 할 것이다.) Monit을 루트를 통해 실행하는 경우 어떻게 관계없이 RVM을 사용할 수 있습니까? 아니면, 시작/중지 프로그램을 실행하기 위해 Monit에게 Michael:staff
으로 알릴 수 있습니까? (OSX에 있다고 가정합니다)
도움이 되었습니까?
감사합니다. 그 사실을 알고 싶지 않았습니다. :) –