in pkg/mesh/istio.go [473:494]
func (kr *KRun) Exit(code int) {
if kr.agentCmd != nil && kr.agentCmd.Process != nil {
kr.agentCmd.Process.Signal(syscall.SIGTERM)
}
if kr.appCmd != nil && kr.appCmd.Process != nil {
kr.agentCmd.Process.Signal(syscall.SIGTERM)
}
for _, a := range kr.Children {
a.Process.Signal(syscall.SIGTERM)
}
time.Sleep(5 * time.Second)
if kr.agentCmd != nil && kr.agentCmd.Process != nil {
kr.agentCmd.Process.Kill()
}
if kr.appCmd != nil && kr.appCmd.Process != nil {
kr.appCmd.Process.Kill()
}
for _, a := range kr.Children {
a.Process.Kill()
}
os.Exit(code)
}