terminal: only shutdown sub-servers on shutdown

This commit is contained in:
Elle Mouton 2023-05-21 19:10:54 +02:00
parent a673dec347
commit 96779c965e
No known key found for this signature in database
GPG key ID: D7D916376026F177

View file

@ -287,16 +287,9 @@ func (g *LightningTerminal) Run() error {
<-shutdownInterceptor.ShutdownChannel()
log.Infof("Shutdown signal received")
if g.rpcProxy != nil {
if err := g.rpcProxy.Stop(); err != nil {
log.Errorf("Error stopping rpc proxy: %v", err)
}
}
if g.httpServer != nil {
if err := g.httpServer.Close(); err != nil {
log.Errorf("Error stopping UI server: %v", err)
}
err = g.shutdownSubServers()
if err != nil {
log.Errorf("Error shutting down: %v", err)
}
g.wg.Wait()
@ -501,27 +494,6 @@ func (g *LightningTerminal) start() error {
return fmt.Errorf("received the shutdown signal")
}
// We now know that starting lnd was successful. If we now run into an
// error, we must shut down lnd correctly.
defer func() {
err := g.shutdownSubServers()
if err != nil {
log.Errorf("Error shutting down: %v", err)
}
if g.rpcProxy != nil {
if err := g.rpcProxy.Stop(); err != nil {
log.Errorf("Error stopping rpc proxy: %v", err)
}
}
if g.httpServer != nil {
if err := g.httpServer.Close(); err != nil {
log.Errorf("Error stopping UI server: %v", err)
}
}
}()
// Connect to LND.
g.lndConn, err = connectLND(g.cfg, bufRpcListener)
if err != nil {
@ -1207,6 +1179,20 @@ func (g *LightningTerminal) shutdownSubServers() error {
}
}
if g.rpcProxy != nil {
if err := g.rpcProxy.Stop(); err != nil {
log.Errorf("Error stopping rpc proxy: %v", err)
returnErr = err
}
}
if g.httpServer != nil {
if err := g.httpServer.Close(); err != nil {
log.Errorf("Error stopping UI server: %v", err)
returnErr = err
}
}
// Do we have any last errors to display? We use an anonymous function,
// so we can use return instead of breaking to a label in the default
// case.