Merge pull request #827 from mfischer-zd/lock_sigterm

Handle SIGTERM when running commands
This commit is contained in:
Ryan Uber 2015-04-01 09:58:55 -07:00
commit c0178a84ce
1 changed files with 3 additions and 2 deletions

View File

@ -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