Kouhei Sutou
null+****@clear*****
Tue Apr 22 11:25:56 JST 2014
Kouhei Sutou 2014-04-22 11:25:56 +0900 (Tue, 22 Apr 2014) New Revision: a88d3a0d6eeb4f2b3ed52ae88687943442977ca5 https://github.com/droonga/droonga-engine/commit/a88d3a0d6eeb4f2b3ed52ae88687943442977ca5 Message: droonga-engine: support auto restarting for unexpected stop Modified files: lib/droonga/engine/command/droonga_engine.rb Modified: lib/droonga/engine/command/droonga_engine.rb (+19 -5) =================================================================== --- lib/droonga/engine/command/droonga_engine.rb 2014-04-21 17:39:31 +0900 (536ddda) +++ lib/droonga/engine/command/droonga_engine.rb 2014-04-22 11:25:56 +0900 (7071519) @@ -117,14 +117,28 @@ module Droonga @heartbeat_socket = UDPSocket.new(@configuration.address_family) @heartbeat_socket.bind(@configuration.host, @configuration.port) + + service_pid = nil + running = true trap(:INT) do - Process.kill(:INT, @service_pid) + Process.kill(:INT, service_pid) + running = false + end + trap(ServerEngine::Daemon::Signals::GRACEFUL_STOP) do + Process.kill(ServerEngine::Daemon::Signals::GRACEFUL_STOP, + service_pid) + running = false end - trap(:TERM) do - Process.kill(:TERM, @service_pid) + trap(ServerEngine::Daemon::Signals::IMMEDIATE_STOP) do + Process.kill(ServerEngine::Daemon::Signals::IMMEDIATE_STOP, + service_pid) + running = false + end + while running + service_pid = run_service + Process.waitpid(service_pid) end - @service_pid = run_service - Process.waitpid(@service_pid) + true end -------------- next part -------------- HTML����������������������������... Download