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