|
|
@ -25,6 +25,7 @@ import ( |
|
|
|
"os/signal" |
|
|
|
"os/signal" |
|
|
|
"runtime" |
|
|
|
"runtime" |
|
|
|
"strings" |
|
|
|
"strings" |
|
|
|
|
|
|
|
"syscall" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/core" |
|
|
|
"github.com/ethereum/go-ethereum/core" |
|
|
|
"github.com/ethereum/go-ethereum/core/types" |
|
|
|
"github.com/ethereum/go-ethereum/core/types" |
|
|
@ -64,7 +65,7 @@ func StartNode(stack *node.Node) { |
|
|
|
} |
|
|
|
} |
|
|
|
go func() { |
|
|
|
go func() { |
|
|
|
sigc := make(chan os.Signal, 1) |
|
|
|
sigc := make(chan os.Signal, 1) |
|
|
|
signal.Notify(sigc, os.Interrupt) |
|
|
|
signal.Notify(sigc, syscall.SIGINT, syscall.SIGTERM) |
|
|
|
defer signal.Stop(sigc) |
|
|
|
defer signal.Stop(sigc) |
|
|
|
<-sigc |
|
|
|
<-sigc |
|
|
|
log.Info("Got interrupt, shutting down...") |
|
|
|
log.Info("Got interrupt, shutting down...") |
|
|
@ -85,7 +86,7 @@ func ImportChain(chain *core.BlockChain, fn string) error { |
|
|
|
// If a signal is received, the import will stop at the next batch.
|
|
|
|
// If a signal is received, the import will stop at the next batch.
|
|
|
|
interrupt := make(chan os.Signal, 1) |
|
|
|
interrupt := make(chan os.Signal, 1) |
|
|
|
stop := make(chan struct{}) |
|
|
|
stop := make(chan struct{}) |
|
|
|
signal.Notify(interrupt, os.Interrupt) |
|
|
|
signal.Notify(interrupt, syscall.SIGINT, syscall.SIGTERM) |
|
|
|
defer signal.Stop(interrupt) |
|
|
|
defer signal.Stop(interrupt) |
|
|
|
defer close(interrupt) |
|
|
|
defer close(interrupt) |
|
|
|
go func() { |
|
|
|
go func() { |
|
|
|