cmd/tailscaled: exit gracefully on SIGPIPE

Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com>
This commit is contained in:
Dmytro Shynkevych 2020-07-31 16:02:42 -04:00
parent 3e493e0417
commit 43b271cb26
No known key found for this signature in database
GPG Key ID: FF5E2F3DAD97EA23

View File

@ -148,10 +148,11 @@ func run() error {
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
// Exit gracefully by cancelling the ipnserver context in most common cases: // Exit gracefully by cancelling the ipnserver context in most common cases:
// interrupted from the TTY or killed by a service manager. // interrupted from the TTY (including when output is piped into e.g. grep)
// or killed by a service manager.
go func() { go func() {
interrupt := make(chan os.Signal, 1) interrupt := make(chan os.Signal, 1)
signal.Notify(interrupt, syscall.SIGINT, syscall.SIGTERM) signal.Notify(interrupt, syscall.SIGINT, syscall.SIGPIPE, syscall.SIGTERM)
select { select {
case s := <-interrupt: case s := <-interrupt:
logf("tailscaled got signal %v; shutting down", s) logf("tailscaled got signal %v; shutting down", s)