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:
carla
2020-08-24 08:54:34 +02:00
parent c3821e5ad1
commit daae8a9944
6 changed files with 98 additions and 6 deletions

View File

@@ -414,7 +414,10 @@ func openChannelPsbt(ctx *cli.Context, client lnrpc.LightningClient,
if err != nil {
return fmt.Errorf("opening stream to server failed: %v", err)
}
signal.Intercept()
if err := signal.Intercept(); err != nil {
return err
}
// We also need to spawn a goroutine that reads from the server. This
// will copy the messages to the channel as long as they come in or add