Ganeti.Daemon: always install SIGHUP handler github/stable-2.9
authorApollon Oikonomopoulos <apoikos@gmail.com>
Mon, 29 Sep 2014 14:41:38 +0000 (17:41 +0300)
committerPetr Pudlak <pudlak@google.com>
Sun, 5 Oct 2014 16:07:30 +0000 (18:07 +0200)
Install the SIGHUP handler regardless of the daemonization status. This
fixes issue #755.

Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>
Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

src/Ganeti/Daemon.hs

index 6d1082b..a427c9c 100644 (file)
@@ -356,7 +356,6 @@ daemonize logfile action = do
     setupDaemonEnv "/" (unionFileModes groupModes otherModes)
     setupDaemonFDs (Just logfile) `Control.Exception.catch`
       handlePrepErr False wpipe'
-    _ <- installHandler lostConnection (Catch (handleSigHup logfile)) Nothing
     -- second fork, launches the actual child code; standard
     -- double-fork technique
     _ <- forkProcess (action wpipe')
@@ -407,6 +406,7 @@ genericMain daemon options check_fn prep_fn exec_fn = do
   let processFn = if optDaemonize opts
                     then daemonize log_file
                     else \action -> action Nothing
+  _ <- installHandler lostConnection (Catch (handleSigHup log_file)) Nothing
   processFn $ innerMain daemon opts syslog check_result' prep_fn exec_fn
 
 -- | Full prepare function.