Başlık biraz anlamsız oldu ama daha anlamlısını bulamadım, bulursanız ve bana yazarsanız sevinirim. Go programı çalışsın ama siz istemediğiniz sürece kapanmasın istiyorsunuz. Normal şartlarda program main fonksiyonundaki işini bitirince sonlanır veya siz oraya bir timer koyarsanız bekler. Ama timer‘da bi yerde sonlanacak. Hele birde goroutine kullanmışsanız sadece…
Biliyosunuz goroutine lerle çalışırsak onlar farklı bir iş akışında devam ederler ve main fonksiyonumuz çalışmaya devam eder. Eee haliyle goroutine bitmiş bitmemiş umrnd olmaz.
Bu ve benzeri önlemler için ve bilhassa programın kapanmasını biz tetikliyor ve bunu algılamak istiyorsak bu kodu main fonksiyonunun altına iliştirin.
sigs := make(chan os.Signal,1) done := make(chan bool) signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT) go func(){ sig := <- sigs _ = sig done <- true }() <- done fmt.Println("Program Closed")
artık siz kapatmadığınız sürece arkadaş sizden bir sinyal gelmesini bekleyecektir.
Bende sizin videolarda yaptığınız gibi time.Sleep koyuyordum devamlı bu iyi oldu.
Teşekkürler
Bundan sonra böyle çalışırsınız artık. İyi günler…