私は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