@@ -287,16 +287,9 @@ func (g *LightningTerminal) Run() error {
287
287
<- shutdownInterceptor .ShutdownChannel ()
288
288
log .Infof ("Shutdown signal received" )
289
289
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 )
300
293
}
301
294
302
295
g .wg .Wait ()
@@ -501,27 +494,6 @@ func (g *LightningTerminal) start() error {
501
494
return fmt .Errorf ("received the shutdown signal" )
502
495
}
503
496
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
-
525
497
// Connect to LND.
526
498
g .lndConn , err = connectLND (g .cfg , bufRpcListener )
527
499
if err != nil {
@@ -1207,6 +1179,20 @@ func (g *LightningTerminal) shutdownSubServers() error {
1207
1179
}
1208
1180
}
1209
1181
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
+
1210
1196
// Do we have any last errors to display? We use an anonymous function,
1211
1197
// so we can use return instead of breaking to a label in the default
1212
1198
// case.
0 commit comments