@@ -287,16 +287,9 @@ func (g *LightningTerminal) Run() error {
287287 <- shutdownInterceptor .ShutdownChannel ()
288288 log .Infof ("Shutdown signal received" )
289289
290- if g .rpcProxy != nil {
291- if err := g .rpcProxy .Stop (); err != nil {
292- log .Errorf ("Error stopping rpc proxy: %v" , err )
293- }
294- }
295-
296- if g .httpServer != nil {
297- if err := g .httpServer .Close (); err != nil {
298- log .Errorf ("Error stopping UI server: %v" , err )
299- }
290+ err = g .shutdownSubServers ()
291+ if err != nil {
292+ log .Errorf ("Error shutting down: %v" , err )
300293 }
301294
302295 g .wg .Wait ()
@@ -501,27 +494,6 @@ func (g *LightningTerminal) start() error {
501494 return fmt .Errorf ("received the shutdown signal" )
502495 }
503496
504- // We now know that starting lnd was successful. If we now run into an
505- // error, we must shut down lnd correctly.
506- defer func () {
507- err := g .shutdownSubServers ()
508- if err != nil {
509- log .Errorf ("Error shutting down: %v" , err )
510- }
511-
512- if g .rpcProxy != nil {
513- if err := g .rpcProxy .Stop (); err != nil {
514- log .Errorf ("Error stopping rpc proxy: %v" , err )
515- }
516- }
517-
518- if g .httpServer != nil {
519- if err := g .httpServer .Close (); err != nil {
520- log .Errorf ("Error stopping UI server: %v" , err )
521- }
522- }
523- }()
524-
525497 // Connect to LND.
526498 g .lndConn , err = connectLND (g .cfg , bufRpcListener )
527499 if err != nil {
@@ -1207,6 +1179,20 @@ func (g *LightningTerminal) shutdownSubServers() error {
12071179 }
12081180 }
12091181
1182+ if g .rpcProxy != nil {
1183+ if err := g .rpcProxy .Stop (); err != nil {
1184+ log .Errorf ("Error stopping rpc proxy: %v" , err )
1185+ returnErr = err
1186+ }
1187+ }
1188+
1189+ if g .httpServer != nil {
1190+ if err := g .httpServer .Close (); err != nil {
1191+ log .Errorf ("Error stopping UI server: %v" , err )
1192+ returnErr = err
1193+ }
1194+ }
1195+
12101196 // Do we have any last errors to display? We use an anonymous function,
12111197 // so we can use return instead of breaking to a label in the default
12121198 // case.
0 commit comments