Navigation Menu

Skip to content

Commit

Permalink
droonga-engine: support auto restarting for unexpected stop
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Apr 22, 2014
1 parent 2facbe7 commit a88d3a0
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions lib/droonga/engine/command/droonga_engine.rb
Expand Up @@ -117,14 +117,28 @@ def run(command_line_arguments)
@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

Expand Down

0 comments on commit a88d3a0

Please sign in to comment.