multi: wrap logger to request shutdown from signal on critical error
This commit adds a shutdown logger which will send a request for shutdown on critical errors. It uses the signal package to request safe shutdown of the daemon. Since we init our logs in config validation, we add a started channel to the signal package to prevent the case where we have a critical log after the ShutdownLogger has started but before the daemon has started listening for intercepts. In this case, we just ignore the shutdown request.
This commit is contained in:
6 files changed
+98
-6
No files matched your search
+4
-1
@@ -54,7 +54,10 @@ func Start(extraArgs string, unlockerReady, rpcReady Callback) {
|
||||
}
|
||||
|
||||
// Hook interceptor for os signals.
|
||||
signal.Intercept()
|
||||
if err := signal.Intercept(); err != nil {
|
||||
_, _ = fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Set up channels that will be notified when the RPC servers are ready
|
||||
// to accept calls.
|
||||
|
||||
Reference in new issue
Block a user