0
我在EC2的golang中有一個程序。Golang SIGTEM SIGKILL回調在停止EC2時沒有得到執行
的要求是對EC2終止執行清理。我試圖通過下面的代碼中,我已經創建了一個信道聽OS信號來實現這一點:
func InitTermination(){
signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGKILL) //listen to termination signals (ctrl+c)
go func() {
<-c
log.Println("Calling uploadLogFiles on system/program termination")
*termination = true
for {
if !(*lock) {
err := uploadCompletedLogs()
if err != nil {
log.Fatalf("Error: %v", err)
}
break
} else {
time.Sleep(100 * time.Millisecond)
}
}
if !(os.Getenv("TEST") == "true") {
os.Exit(1)
}
}()
}
在實例終止或停止我想方法uploadCompletedLogs()要被執行,它執行一些清理,但我無法達到理想的行爲。
有人能指導我如何才能做到這一點?
您無法處理SIGKILL。 – JimB