in pkg/mesh/krun.go [565:594]
func (kr *KRun) Signals() {
go func() {
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT)
s := <-sigs
log.Println("Received SIGINT", "total_time", time.Since(kr.StartTime))
if kr.agentCmd != nil {
kr.agentCmd.Process.Signal(s)
}
if kr.appCmd != nil {
kr.appCmd.Process.Signal(s)
}
}()
go func() {
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGTERM)
s := <-sigs
log.Println("Received SIGTERM", "total_time", time.Since(kr.StartTime))
// Will start draining envoy
if kr.agentCmd != nil {
kr.agentCmd.Process.Signal(s)
}
if kr.appCmd != nil {
kr.appCmd.Process.Signal(s)
}
for _, a := range kr.Children {
a.Process.Signal(s)
}
}()
}