()
| 113 | } |
| 114 | |
| 115 | func installSignalHandlers() { |
| 116 | go func() { |
| 117 | // Clear some default handlers installed by the firecracker SDK: |
| 118 | signal.Reset(os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT) |
| 119 | c := make(chan os.Signal, 1) |
| 120 | signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT) |
| 121 | |
| 122 | for { |
| 123 | switch s := <-c; { |
| 124 | case s == syscall.SIGTERM || s == os.Interrupt: |
| 125 | log.Printf("Caught signal: %s, requesting clean shutdown", s.String()) |
| 126 | deleteVMMSockets() |
| 127 | os.Exit(0) |
| 128 | case s == syscall.SIGQUIT: |
| 129 | log.Printf("Caught signal: %s, forcing shutdown", s.String()) |
| 130 | deleteVMMSockets() |
| 131 | os.Exit(0) |
| 132 | } |
| 133 | } |
| 134 | }() |
| 135 | } |
no test coverage detected