저는 Mongrel 클러스터와 함께 실행되는 Rails 애플리케이션의 배치를 관리하기 위해 Chef를 사용하고 있습니다.Chef를 사용하여 init.d 스크립트를 통해 Mongrel 클러스터를 다시 시작합니다.
내 init.d
파일은 매우 간단합니다. 여기에 다시 시작의 경우는 다음과 같습니다
restart)
sudo su -l myuser -c "cd /path/to/myapp/current && mongrel_rails cluster::restart"
;;
나는 어떤 문제에 root
로 service myapp restart
를 실행할 수 있습니다. mongrel_rails cluster::restart
을 myuser
으로 실행할 수 있습니다.
그러나 Chef를 통해 배포를 수행하면 tmp/pids/mongrel.port.pid
파일이 정리되지 않아 향후 재시작이 실패하게됩니다.
요리사는 단순히 재시작을 수행하기 위해 다음을 수행한다 :
init.d
스크립트는 확실히 물론, PID 파일에 폭발을 제외하고 예상되는 출력 (이 모든 로그로 호출되는
service "myapp" do
action :restart
end
).
무엇이 누락 되었습니까?
그래서 정상 작동에'init.d' 스크립트가 PID 파일을 정리하지만 요리사를 통해 호출하지 않을 경우? – cmur2
@ cmur2 수정하십시오. –