[Groonga-commit] droonga/droonga-engine at a88d3a0 [master] droonga-engine: support auto restarting for unexpected stop

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index