Header

  1. View current page

    딥뿔이 자라나는 노트

Profile_image?t=1225424611&type=big
나를 바꾼 똑똑한 생활 습관, 스프링노트 - 여러분도 지금 시작해보세요!
38

몽그렐이 말을 듣지 않으면 Kill -9

 Mongrel을 우아하게 재시작하는 법에서 이어서...


mongrel 프로세스를 종료하기 위해 보통 사용하는 명령은 다음과 같다.


  1. mongrel_rails  stop  [options]


문제는 온갖 문제로 특정 프로세스가 TERM 시그널을 받고도 죽지 않는 경우이다. TERM 시그널을 보내고 한참을 기다리면 스스로 사라지기도 하지만, 대부분의 경우 그리 느긋하게 기다릴 수만은 없다. 방법은 kill -9를 하는 것이다. 다행인지 mongrel_rails에는 강제 종료 옵션이 있다.

 

  1. mongrel_rails -f -w 5


내가 사용하는 방법은 이렇다. TERM을 보내본다. pid 파일이 아직도 있으면(정상적으로 종료되지 않으면) 강제 종료한다.


  1.  def stop(i)
  2.   pid = "#{APP_HOME}/shared/log/mongrel.400#{i}.pid"
  3.   system "mongrel_rails stop -P #{pid} -c #{APP_HOME}/current"
  4.   if File.exists?(pid)
  5.     system "mongrel_rails stop -P #{pid} -c #{APP_HOME}/current -w 5 -f"
  6.     system "rm #{pid}"
  7.   end
  8. end


갑자기 "When Your Mongrel Misbehaves, Kill -9"이라는 명곡이 생각난다. 킬 대시 나인~~.


History

Last edited on 01/09/2008 18:53 by deepblue

Comments (0)

You must log in to leave a comment. Please sign in.