diff options
author | Péter Szilágyi <peterke@gmail.com> | 2018-02-21 21:50:34 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-21 21:50:34 +0800 |
commit | 7d578246632c15b15c615d66ccfbd99edd2642c6 (patch) | |
tree | 65867213d25c4703addfff98471c134462e2f20b | |
parent | 5603715c06998ff9ed30eb134c4398ad1439ef48 (diff) | |
parent | 01507d9b9d872aa6dfaf3ad704b8c2b65e378a41 (diff) | |
download | dexon-7d578246632c15b15c615d66ccfbd99edd2642c6.tar.gz dexon-7d578246632c15b15c615d66ccfbd99edd2642c6.tar.zst dexon-7d578246632c15b15c615d66ccfbd99edd2642c6.zip |
Merge pull request #16142 from karalabe/graceful-sigterm
cmd, console: support all termination signals
-rw-r--r-- | cmd/geth/consolecmd.go | 3 | ||||
-rw-r--r-- | cmd/utils/cmd.go | 5 | ||||
-rw-r--r-- | console/console.go | 3 |
3 files changed, 7 insertions, 4 deletions
diff --git a/cmd/geth/consolecmd.go b/cmd/geth/consolecmd.go index 9d5cc38a1..7eca4d59f 100644 --- a/cmd/geth/consolecmd.go +++ b/cmd/geth/consolecmd.go @@ -22,6 +22,7 @@ import ( "os/signal" "path/filepath" "strings" + "syscall" "github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/console" @@ -207,7 +208,7 @@ func ephemeralConsole(ctx *cli.Context) error { } // Wait for pending callbacks, but stop for Ctrl-C. abort := make(chan os.Signal, 1) - signal.Notify(abort, os.Interrupt) + signal.Notify(abort, syscall.SIGINT, syscall.SIGTERM) go func() { <-abort diff --git a/cmd/utils/cmd.go b/cmd/utils/cmd.go index 53cdf7861..186d18d8f 100644 --- a/cmd/utils/cmd.go +++ b/cmd/utils/cmd.go @@ -25,6 +25,7 @@ import ( "os/signal" "runtime" "strings" + "syscall" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" @@ -64,7 +65,7 @@ func StartNode(stack *node.Node) { } go func() { sigc := make(chan os.Signal, 1) - signal.Notify(sigc, os.Interrupt) + signal.Notify(sigc, syscall.SIGINT, syscall.SIGTERM) defer signal.Stop(sigc) <-sigc 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. interrupt := make(chan os.Signal, 1) stop := make(chan struct{}) - signal.Notify(interrupt, os.Interrupt) + signal.Notify(interrupt, syscall.SIGINT, syscall.SIGTERM) defer signal.Stop(interrupt) defer close(interrupt) go func() { diff --git a/console/console.go b/console/console.go index 52fe1f542..b280d4e65 100644 --- a/console/console.go +++ b/console/console.go @@ -26,6 +26,7 @@ import ( "regexp" "sort" "strings" + "syscall" "github.com/ethereum/go-ethereum/internal/jsre" "github.com/ethereum/go-ethereum/internal/web3ext" @@ -332,7 +333,7 @@ func (c *Console) Interactive() { }() // Monitor Ctrl-C too in case the input is empty and we need to bail abort := make(chan os.Signal, 1) - signal.Notify(abort, os.Interrupt) + signal.Notify(abort, syscall.SIGINT, syscall.SIGTERM) // Start sending prompts to the user and reading back inputs for { |