mirror of https://github.com/status-im/consul.git
Merge pull request #827 from mfischer-zd/lock_sigterm
Handle SIGTERM when running commands
This commit is contained in:
commit
c0178a84ce
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
"syscall"
|
||||||
|
|
||||||
"github.com/hashicorp/consul/command"
|
"github.com/hashicorp/consul/command"
|
||||||
"github.com/hashicorp/consul/command/agent"
|
"github.com/hashicorp/consul/command/agent"
|
||||||
|
@ -136,12 +137,12 @@ func init() {
|
||||||
|
|
||||||
// makeShutdownCh returns a channel that can be used for shutdown
|
// makeShutdownCh returns a channel that can be used for shutdown
|
||||||
// notifications for commands. This channel will send a message for every
|
// notifications for commands. This channel will send a message for every
|
||||||
// interrupt received.
|
// interrupt or SIGTERM received.
|
||||||
func makeShutdownCh() <-chan struct{} {
|
func makeShutdownCh() <-chan struct{} {
|
||||||
resultCh := make(chan struct{})
|
resultCh := make(chan struct{})
|
||||||
|
|
||||||
signalCh := make(chan os.Signal, 4)
|
signalCh := make(chan os.Signal, 4)
|
||||||
signal.Notify(signalCh, os.Interrupt)
|
signal.Notify(signalCh, os.Interrupt, syscall.SIGTERM)
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
<-signalCh
|
<-signalCh
|
||||||
|
|
Loading…
Reference in New Issue