2012-07-22 2 views
0

관리자가 원격 시작/중지/다시 시작 private_pub 서버에 기능을 제공하기 위해 capistrano recipe 파일에 일부 작업을 추가 할 계획입니다. 하지만 시작과 같이 사용할 수있는 경우중지 및 재시작 기능이있는 랙 서버

desc "Start private_pub server" 
    task :start do 
    run "cd #{current_path};rackup private_pub.ru -s thin -E production -D" 
    end 

나는 랙업 서버를 중지하거나 다시 시작하는 방법에 대한 문서를 찾을 수 없습니다. 내가 옵션

-P, --pid FILE   file to store PID (default: rack.pid) 

볼 수 있지만 아마도 서버를 중지하기 위해 kill 명령을 사용 - 좋지 않은 생각을?

답변

2

같은 해결책을 찾고있는 동안 발견했습니다.

gist.github.com/3197633

기본적으로 당신은 당신이 그 파일을 읽을 중지로 이동하고 죽일 -9 실행하면 그 다음/tmp를/PID에있는 파일에 PID 번호를 작성하고있는 프로세스를 시작하면서 ...

희망이 있습니다.

0

kill -9을 사용하는 것은 좋지 않습니다. 이로 인해 데이터가 갑자기 손실 될 수 있으며 'control-c'를 누르는 것과 동일한 kill 2 또는 kill -INT을 사용하는 것이 좋으며 정상적인 서버를 종료해야한다는 것을 알고 있습니다. 개인적으로 TPW가 신 보석으로 서버를 관리하기 시작했습니다. 다음은 로컬 'geminabox'서버를 실행하는 데 사용하는 스크립트입니다 (예 :

God.watch do |w| 
w.name = 'gemserver' 
    w.dir = '/usr/local/gemserver' 
    w.pid_file = "#{ENV['HOME']}/.god/pids/#{w.name}.pid" 
    ru = File.expand_path `which rackup` 
    w.start = "#{ru} -D #{w.dir}/config.ru -P #{w.pid_file}" 
    # w.stop = lambda { Process.kill(3, `lsof -i :9292`.chomp.to_i) } 
    w.behavior :clean_pid_file 
    w.keepalive 
end 
).